次の方法で共有


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 のフレームワークの動作

AutoForwardCleanupCloseWdfTrue に設定されている場合、フレームワークは次の処理を行います。
  • ドライバーが EvtDeviceFileCreate コールバック関数を提供せず、 WdfDeviceConfigureRequestDispatching を呼び出してファイル作成要求を受信する I/O キューを設定していない場合、フレームワークは次の下位ドライバーにファイル作成要求を転送します。 ドライバーが要求を処理するコールバック関数またはキューを提供する場合、フレームワークはファイル作成要求を転送しないため、ドライバーは要求を 転送完了、または 取り消す 必要があります。
  • フレームワークは、ドライバーの EvtFileCleanup コールバック関数と EvtFileClose コールバック関数を呼び出した後、ファイルのクリーンアップと閉じ要求を次の下位ドライバーに送信します。
AutoForwardCleanupCloseWdfFalse に設定されている場合、フレームワークはファイルの作成、クリーンアップ、または閉じる要求を転送しません。 代わりに、フレームワークはドライバーの要求を完了します。

AutoForwardCleanupCloseWdfUseDefault に設定されている場合、フレームワークでは、フィルター ドライバーに WdfTrue 動作、関数ドライバーに WdfFalse 動作を使用します。

AutoForwardCleanupClose のドライバーの動作

ドライバーのローカル I/O ターゲットは、要求の種類が WdfRequestTypeCreateWdfRequestTypeCleanup、WdfRequestTypeClose の I/O 要求の数が常に等しい必要があります。 したがって、ドライバーが EvtDeviceFileCreate コールバック関数またはファイル作成要求を受信する I/O キューを提供する場合は、次の規則を使用する必要があります。
  • ドライバーが AutoForwardCleanupCloseWdfTrue に設定した場合、ドライバーはすべてのファイル作成要求をローカル I/O ターゲットに転送する必要があります。 ドライバーが EvtFileCleanup コールバック関数と EvtFileClose コールバック関数を提供しているかどうかに関係なく、フレームワークはすべてのクリーンアップとクローズ要求をローカル ターゲットに転送するため、この規則に従う必要があります。
  • ドライバーが AutoForwardCleanupCloseWdfFalse に設定した場合、ドライバーはファイル作成要求をローカル I/O ターゲットに転送 しないでください 。 ドライバーが EvtFileCleanup コールバック関数と EvtFileClose コールバック関数を提供しているかどうかに関係なく、フレームワークはクリーンアップを転送してローカル ターゲットに要求を閉じないため、この規則に従う必要があります。
  • ドライバーが AutoForwardCleanupCloseWdfDefault に設定する場合、ドライバーは WdfTrue の規則に従う必要があります (フィルター ドライバーの場合)。 ドライバーが関数ドライバーの場合は、 WdfFalse の規則に従う必要があります。

要件

要件
最小 KMDF バージョン 1.0
最小 UMDF バージョン 2.0
Header wdfdevice.h (Wdf.h を含む)