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。 其他傳回值包括:

傳回碼 Description
STATUS_INVALID_PARAMETER
如果 DeviceInterfaceTypeInterface 參數為 NULL,則裝置對象無效。
STATUS_INSUFFICIENT_RESOURCES
架構無法配置傳送至另一個驅動程式的要求。
 

方法也可能傳回其他 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
                                 );

規格需求

需求
目標平台 Universal
最低 KMDF 版本 1.0
標頭 wdffdo.h (包含 Wdf.h)
程式庫 Wdf01000.sys (請參閱 Framework Library Versioning.)
IRQL PASSIVE_LEVEL
DDI 合規性規則 DriverCreate (kmdf) KmdfIrql (kmdf) KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf)

另請參閱

WdfIoTargetQueryForInterface