共用方式為


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

回傳碼 說明
STATUS_INVALID_PARAMETER
裝置物件無效,或者如果 DeviceInterfaceTypeInterface 參數 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)

另請參閱

WdfIoTargetQueryForInterface