次の方法で共有


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を返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。

リターン コード 説明
STATUS_INVALID_PARAMETER
IoTargetInterfaceType、または Interface パラメーターが NULL です
STATUS_INSUFFICIENT_RESOURCES
フレームワークは、別のドライバーに送信する要求を割り当てませんでした。
 

このメソッドは、他の 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)

こちらもご覧ください

インターフェイス

WdfDeviceAddQueryInterface

WdfFdoQueryForInterface

WdfIoTargetCreate