次の方法で共有


WdfFdoQueryForInterface 関数 (wdffdo.h)

[KMDF にのみ適用]

WdfFdoQueryForInterface メソッドは、別のドライバーの GUID で識別されたインターフェイスへのアクセスを取得します。

構文

NTSTATUS WdfFdoQueryForInterface(
  [in]           WDFDEVICE  Fdo,
  [in]           LPCGUID    InterfaceType,
  [out]          PINTERFACE Interface,
  [in]           USHORT     Size,
  [in]           USHORT     Version,
  [in, optional] PVOID      InterfaceSpecificData
);

パラメーター

[in] Fdo

フレームワーク デバイス オブジェクトへのハンドル。

[in] InterfaceType

インターフェイスを識別する GUID へのポインター。

[out] Interface

要求されたインターフェイスを受け取るドライバーによって割り当てられた構造体へのポインター。 この構造体は、要求されたインターフェイスをエクスポートするドライバーによって定義され、 INTERFACE 構造体で始まる必要があります。

[in] Size

要求されたインターフェイスを表すドライバーによって割り当てられた構造体のサイズ (バイト単位)。

[in] Version

要求されたインターフェイスのバージョン番号。 この値の形式は、要求されたインターフェイスをエクスポートするドライバーによって定義されます。

[in, optional] InterfaceSpecificData

追加のインターフェイス固有の情報。 このパラメーターは省略可能であり、 NULL にすることができます。

戻り値

操作が成功した場合、メソッドは STATUS_SUCCESS を返します。 その他の戻り値は次のとおりです。

リターン コード 説明
STATUS_INVALID_PARAMETER
デバイス オブジェクトが無効であるか、 DeviceInterfaceType、または Interface パラメーターが NULL の場合。
STATUS_INSUFFICIENT_RESOURCES
フレームワークは、別のドライバーに送信する要求を割り当てませんでした。
 

メソッドは、他の NTSTATUS 値も返す場合があります。

ドライバーが無効なオブジェクト ハンドルを提供すると、システム バグ チェックが発生します。

注釈

ドライバーは WdfFdoQueryForInterface を呼び出して、ドライバーと同じドライバー スタック内にあるドライバーによって作成されたドライバー定義インターフェイスへのアクセスを取得できます。 別のドライバー スタック内のドライバーによって作成されたドライバー定義インターフェイスにアクセスするには、ドライバーで WdfIoTargetQueryForInterface を呼び出す必要があります。

フレームワーク ベースのドライバーでは 、WdfDeviceAddQueryInterface を呼び出してインターフェイスを定義します。

WdfFdoQueryForInterface の詳細については、「Driver-Defined インターフェイスの使用」を参照してください。

次のコード例は、 トースター サンプル関数ドライバーのコード例です。 この例では、トースター サンプル バス ドライバーが定義するインターフェイスへのアクセスを取得します。

status = WdfFdoQueryForInterface(
                                 Device,
                                 &GUID_TOASTER_INTERFACE_STANDARD,
                                 (PINTERFACE) &fdoData->BusInterface, // Object context space
                                 sizeof(TOASTER_INTERFACE_STANDARD),
                                 1,
                                 NULL
                                 );

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.0
Header wdffdo.h (Wdf.h を含む)
Library Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

こちらもご覧ください

WdfIoTargetQueryForInterface