WDF_FILEOBJECT_CONFIG 構造体 (wdfdevice.h)
[KMDF と UMDF に適用]
WDF_FILEOBJECT_CONFIG構造体には、ドライバーのフレームワーク ファイル オブジェクトの構成情報が含まれています。
構文
typedef struct _WDF_FILEOBJECT_CONFIG {
ULONG Size;
PFN_WDF_DEVICE_FILE_CREATE EvtDeviceFileCreate;
PFN_WDF_FILE_CLOSE EvtFileClose;
PFN_WDF_FILE_CLEANUP EvtFileCleanup;
WDF_TRI_STATE AutoForwardCleanupClose;
WDF_FILEOBJECT_CLASS FileObjectClass;
} WDF_FILEOBJECT_CONFIG, *PWDF_FILEOBJECT_CONFIG;
メンバー
Size
この構造体のサイズ (バイト単位)。
EvtDeviceFileCreate
ドライバーの EvtDeviceFileCreate コールバック関数へのポインター、または NULL。
EvtFileClose
ドライバーの EvtFileClose コールバック関数へのポインター、または NULL。
EvtFileCleanup
ドライバーの EvtFileCleanup コールバック関数 ( NULL) へのポインター。
AutoForwardCleanupClose
WDF_TRI_STATE型指定された値。 このメンバーの詳細については、次の「コメント」セクションを参照してください。
FileObjectClass
ドライバーが、アプリケーションまたは 別のドライバーが作成または開く各ファイルを表すためにフレームワーク ファイル オブジェクトを必要とするかどうかを識別するWDF_FILEOBJECT_CLASS型指定された値。 さらに、この値は、フレームワークがオブジェクトのハンドルを格納できる場所を指定します。
注釈
WDF_FILEOBJECT_CONFIG構造体は、WdfDeviceInitSetFileObjectConfig メソッドへの入力として使用されます。
WDF_FILEOBJECT_CONFIGは 、 WDF_FILEOBJECT_CONFIG_INITを呼び出して初期化する必要があります。
AutoForwardCleanupClose のフレームワークの動作
AutoForwardCleanupClose が WdfTrue に設定されている場合、フレームワークは次の処理を行います。- ドライバーが EvtDeviceFileCreate コールバック関数を提供せず、 WdfDeviceConfigureRequestDispatching を呼び出してファイル作成要求を受信する I/O キューを設定していない場合、フレームワークは次の下位ドライバーにファイル作成要求を転送します。 ドライバーが要求を処理するコールバック関数またはキューを提供する場合、フレームワークはファイル作成要求を転送しないため、ドライバーは要求を 転送、 完了、または 取り消す 必要があります。
- フレームワークは、ドライバーの EvtFileCleanup コールバック関数と EvtFileClose コールバック関数を呼び出した後、ファイルのクリーンアップと閉じ要求を次の下位ドライバーに送信します。
AutoForwardCleanupClose が WdfUseDefault に設定されている場合、フレームワークでは、フィルター ドライバーに WdfTrue 動作、関数ドライバーに WdfFalse 動作を使用します。
AutoForwardCleanupClose のドライバーの動作
ドライバーのローカル I/O ターゲットは、要求の種類が WdfRequestTypeCreate、WdfRequestTypeCleanup、WdfRequestTypeClose の I/O 要求の数が常に等しい必要があります。 したがって、ドライバーが EvtDeviceFileCreate コールバック関数またはファイル作成要求を受信する I/O キューを提供する場合は、次の規則を使用する必要があります。- ドライバーが AutoForwardCleanupClose を WdfTrue に設定した場合、ドライバーはすべてのファイル作成要求をローカル I/O ターゲットに転送する必要があります。 ドライバーが EvtFileCleanup コールバック関数と EvtFileClose コールバック関数を提供しているかどうかに関係なく、フレームワークはすべてのクリーンアップとクローズ要求をローカル ターゲットに転送するため、この規則に従う必要があります。
- ドライバーが AutoForwardCleanupClose を WdfFalse に設定した場合、ドライバーはファイル作成要求をローカル I/O ターゲットに転送 しないでください 。 ドライバーが EvtFileCleanup コールバック関数と EvtFileClose コールバック関数を提供しているかどうかに関係なく、フレームワークはクリーンアップを転送してローカル ターゲットに要求を閉じないため、この規則に従う必要があります。
- ドライバーが AutoForwardCleanupClose を WdfDefault に設定する場合、ドライバーは WdfTrue の規則に従う必要があります (フィルター ドライバーの場合)。 ドライバーが関数ドライバーの場合は、 WdfFalse の規則に従う必要があります。
要件
要件 | 値 |
---|---|
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdfdevice.h (Wdf.h を含む) |