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 を返します。 その他の戻り値は次のとおりです。
リターン コード | 説明 |
---|---|
|
デバイス オブジェクトが無効であるか、 Device、 InterfaceType、または Interface パラメーターが NULL の場合。 |
|
フレームワークは、別のドライバーに送信する要求を割り当てませんでした。 |
メソッドは、他の 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) |