共用方式為


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

驅動程式配置結構的大小,以位元組為單位,介面 指向 。

[in] Version

所要求介面的版本號碼。 匯出所要求介面的驅動程式會定義這個值的格式。

[in, optional] InterfaceSpecificData

其他介面特定資訊。 這個參數是選擇性的,而且可以 NULL

返回值

如果作業成功,WdfIoTargetQueryForInterface 會傳回STATUS_SUCCESS。 否則,此方法可能會傳回下列其中一個值:

回傳碼 說明
STATUS_INVALID_PARAMETER
IoTargetInterfaceTypeInterface 參數 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
標題 wdfiotarget.h (包括 Wdf.h)
程式庫 Wdf01000.sys (請參閱架構連結庫版本控制。)
IRQL PASSIVE_LEVEL
DDI 合規性規則 DriverCreate(kmdf)KmdfIrql(kmdf)KmdfIrql2(kmdf),KmdfIrqlExplicit(kmdf)

另請參閱

INTERFACE

WdfDeviceAddQueryInterface

WdfFdoQueryForInterface

WdfIoTargetCreate