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
STATUS_INSUFFICIENT_RESOURCES
框架无法分配要发送到另一个驱动程序的请求。
 

此方法还可以 返回其他NTSTATUS 值。

如果驱动程序提供无效的对象句柄,则会发生 bug 检查。

注解

驱动程序可以调用 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)

另请参阅

接口

WdfDeviceAddQueryInterface

WdfFdoQueryForInterface

WdfIoTargetCreate