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。 否則,這個方法可能會傳回下列其中一個值:
傳回碼 | Description |
---|---|
|
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;
}
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
最低 KMDF 版本 | 1.0 |
標頭 | wdfiotarget.h (包含 Wdf.h) |
程式庫 | Wdf01000.sys (請參閱 Framework Library Versioning.) |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | DriverCreate (kmdf) 、 KmdfIrql (kmdf) 、 KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf) |