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