WDM 情報の取得

フレームワークには、WDM で定義された情報をドライバーが取得できるようにするオブジェクト メソッドがいくつか用意されています。

ドライバーおよびそのデバイスに関する WDM 情報の取得

ドライバーおよびそのデバイスに関する WDM 情報を取得するには、ドライバーで次のメソッドを呼び出します。

  • WdfFdoInitWdmGetPhysicalDevice
    デバイスの物理デバイス オブジェクト (PDO) を表す DEVICE_OBJECT 構造体を取得します。ドライバーは、デバイスのフレームワーク デバイス オブジェクトを作成する前に、このメソッドを呼び出すことができます。

  • WdfDeviceWdmGetPhysicalDevice
    デバイスの PDO を表す WDM DEVICE_OBJECT 構造体を取得します。ドライバーは、デバイスのフレームワーク デバイス オブジェクトを作成した後に、このメソッドを呼び出すことができます。

  • WdfDeviceWdmGetDeviceObject
    指定されたフレームワーク デバイス オブジェクトに関連付けられた WDM デバイス オブジェクトを返します。

  • WdfDeviceWdmGetAttachedDevice
    デバイス スタック内のすぐ下位の WDM デバイス オブジェクトを返します。

  • WdfWdmDeviceGetWdfDeviceHandle
    指定された WDM デバイス オブジェクトに関連付けられたフレームワーク デバイス オブジェクトのハンドルを返します。

  • WdfWdmDriverGetWdfDriverHandle
    指定された WDM ドライバー オブジェクトに関連付けられたフレームワーク ドライバー オブジェクトのハンドルを返します。

 

I/O 要求に関する WDM 情報の取得

I/O 要求に関する WDM 情報を取得するには、ドライバーで次のメソッドを呼び出します。

  • WdfRequestWdmGetIrp
    指定されたフレームワーク要求オブジェクトに関連付けられた WDM IRP 構造体を返します (一方、フレームワークを使用せずに WDM IRP を受信するドライバーは、WdfRequestCreateFromIrp を呼び出して IRP のフレームワーク要求オブジェクトを作成できます)。

  • WdfRequestGetParameters
    指定されたフレームワーク要求オブジェクトに関連付けられたパラメーターを取得します。これらのパラメーターの大部分は、要求の WDM I/O スタックの場所から取得されます。

  • WdfRequestRetrieveOutputWdmMdl
    I/O 要求の出力バッファーを表すメモリ記述子リスト (MDL) を取得します。

  • WdfRequestRetrieveInputWdmMdl
    I/O 要求の入力バッファーを表す MDL を取得します。

  • WdfRequestFormatRequestUsingCurrentType
    呼び出し元ドライバーの I/O スタックの場所の内容を、ドライバーのローカル I/O ターゲットの I/O スタックの場所にコピーします。

  • WdfRequestWdmFormatUsingStackLocation
    ドライバーのローカル I/O ターゲットの I/O スタックの場所の内容を設定します。

 

I/O ターゲットに関する WDM 情報の取得

I/O ターゲットに関する WDM 情報を取得するには、ドライバーで次のメソッドを呼び出します。

 

割り込みおよび DPC に関する WDM 情報の取得

割り込みおよび遅延プロシージャ呼び出し (DPC) に関する WDM 情報を取得するには、ドライバーで次のメソッドを呼び出します。

  • WdfInterruptWdmGetInterrupt
    指定されたフレームワーク割り込みオブジェクトに関連付けられた WDM KINTERRUPT 構造体へのポインターを返します。

  • WdfDpcWdmGetDpc
    指定されたフレームワーク DPC オブジェクトに関連付けられた WDM KDPC 構造体へのポインターを返します。

 

USB I/O ターゲットに関する WDM 情報の取得

USB I/O ターゲットに関する WDM 情報を取得するには、ドライバーで次のメソッドを呼び出します。

  • WdfUsbTargetPipeWdmGetPipeHandle
    指定されたフレームワーク パイプ オブジェクトに関連付けられた USBD_PIPE_HANDLE 型のハンドルを取得します。

 

レジストリに関する WDM 情報の取得

レジストリに関する WDM 情報を取得するには、ドライバーで次のメソッドを呼び出します。

  • WdfRegistryWdmGetHandle
    フレームワーク レジストリ キー オブジェクトによって表されるレジストリ キーの WDM ハンドルを返します。

 

ファイル オブジェクトに関する WDM 情報の取得

ファイル オブジェクトに関する WDM 情報を取得するには、ドライバーで次のメソッドを呼び出します。

  • WdfFileObjectWdmGetFileObject
    指定されたフレームワーク ファイル オブジェクトに関連付けられた WDM FILE_OBJECT 構造体を返します。