WdfIoTargetQueryForInterface 関数 (wdfiotarget.h)
[KMDF にのみ適用]
WdfIoTargetQueryForInterface メソッドは、リモート I/O ターゲットの GUID で識別されるドライバー定義インターフェイスへのアクセスを取得します。
構文
NTSTATUS WdfIoTargetQueryForInterface(
[in] WDFIOTARGET IoTarget,
[in] LPCGUID InterfaceType,
[out] PINTERFACE Interface,
[in] USHORT Size,
[in] USHORT Version,
[in, optional] PVOID InterfaceSpecificData
);
パラメーター
[in] IoTarget
WdfIoTargetCreate の以前の呼び出しから取得されたリモート I/O ターゲット オブジェクトへのハンドル。
[in] InterfaceType
インターフェイスを識別する GUID へのポインター。
[out] Interface
要求されたインターフェイスを受け取るドライバー割り当て構造体へのポインター。 この構造体は、要求されたインターフェイスをエクスポートするドライバーによって定義され、 INTERFACE 構造体で始まる必要があります。
[in] Size
Interface が指すドライバー割り当て構造体のサイズ (バイト単位)。
[in] Version
要求されたインターフェイスのバージョン番号。 要求されたインターフェイスをエクスポートするドライバーは、この値の形式を定義します。
[in, optional] InterfaceSpecificData
追加のインターフェイス固有の情報。 このパラメーターは省略可能であり、 NULL にすることができます。
戻り値
操作が成功した場合、WdfIoTargetQueryForInterface はSTATUS_SUCCESSを返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。
リターン コード | 説明 |
---|---|
|
IoTarget、InterfaceType、または Interface パラメーターが NULL です。 |
|
フレームワークは、別のドライバーに送信する要求を割り当てませんでした。 |
このメソッドは、他の NTSTATUS 値を返す場合もあります。
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
注釈
ドライバーは 、WdfIoTargetQueryForInterface を呼び出して、別のドライバー スタック内のドライバーによって作成されたドライバー定義インターフェイスへのアクセスを取得できます。 ドライバーと同じドライバー スタック内にあるドライバーによって作成されたドライバー定義インターフェイスにアクセスするには、ドライバーが WdfFdoQueryForInterface を呼び出す必要があります。
フレームワーク ベースのドライバーは 、WdfDeviceAddQueryInterface を呼び出してインターフェイスを定義します。 ドライバー定義インターフェイスの詳細については、「 Driver-Defined インターフェイスの使用」を参照してください。
例
次のコード例では、指定したリモート I/O ターゲットのインターフェイスへのアクセスを試みます。 GUID_RAWPDO_INTERFACE_STANDARDは、インターフェイスを識別する GUID です。
NTSTATUS status;
RAWPDO_INTERFACE_STANDARD busInterface;
status = WdfIoTargetQueryForInterface(
IoTarget,
&GUID_RAWPDO_INTERFACE_STANDARD,
(PINTERFACE) &busInterface,
sizeof(RAWPDO_INTERFACE_STANDARD),
1,
NULL
);
if (!NT_SUCCESS (status)){
return status;
}
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
Header | wdfiotarget.h (Wdf.h を含む) |
Library | Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。 |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | DriverCreate(kmdf)、 KmdfIrql(kmdf)、 KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf) |