WdfUsbInterfaceGetConfiguredPipe 函数 (wdfusb.h)

[适用于 KMDF 和 UMDF]

WdfUsbInterfaceGetConfiguredPipe 方法返回与指定的 USB 设备接口和管道索引关联的框架管道对象的句柄。 (可选)该方法还会返回有关管道的信息。

语法

WDFUSBPIPE WdfUsbInterfaceGetConfiguredPipe(
  [in]                WDFUSBINTERFACE           UsbInterface,
  [in]                UCHAR                     PipeIndex,
  [in, out, optional] PWDF_USB_PIPE_INFORMATION PipeInfo
);

参数

[in] UsbInterface

通过调用 WdfUsbTargetDeviceGetInterface 获取的 USB 接口对象的句柄。

[in] PipeIndex

与指定的接口对象关联的框架管道对象集中的从零开始的索引。

[in, out, optional] PipeInfo

指向框架填充的调用方分配 WDF_USB_PIPE_INFORMATION 结构的指针。 此参数是可选的,可以为 NULL

返回值

如果操作成功, WdfUsbInterfaceGetConfiguredPipe 将返回与指定接口对象和管道索引关联的框架管道对象的句柄。 如果WDF_USB_PIPE_INFORMATION结构的大小不正确或管道索引值太大,则方法返回 NULL

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

注解

驱动程序可以在调用 WdfUsbTargetDeviceSelectConfig 后调用 WdfUsbInterfaceGetConfiguredPipe。

有关 WdfUsbInterfaceGetConfiguredPipe 方法和 USB I/O 目标的详细信息,请参阅 USB I/O 目标

示例

下面的代码示例将 USB 中止请求发送到指定 USB 接口的每个已配置管道。

BYTE  count, i;
NTSTATUS  status;

count = WdfUsbInterfaceGetNumConfiguredPipes(UsbInterface);

for (i = 0; i < count; i++) {
    WDFUSBPIPE pipe;
    pipe = WdfUsbInterfaceGetConfiguredPipe(
                                            UsbInterface,
                                            i,
                                            NULL
                                            );
    status = WdfUsbTargetPipeAbortSynchronously(
                                            pipe,
                                            WDF_NO_HANDLE,
                                            NULL
                                            );

    if (!NT_SUCCESS(status)) {
        break;
    }
}

要求

要求
目标平台 通用
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
标头 wdfusb.h (包括 Wdfusb.h)
Library Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
DDI 符合性规则 DriverCreate (kmdf) KmdfIrql (kmdf) KmdfIrql2 (kmdf) , KmdfIrqlExplicit (kmdf) , UsbKmdfIrql (kmdf) UsbKmdfIrql2 (kmdf) 、UsbKmdfIrqlExplicit (kmdf)

另请参阅

WDF_USB_PIPE_INFORMATION

WdfUsbInterfaceGetNumConfiguredPipes

WdfUsbTargetDeviceGetInterface

WdfUsbTargetDeviceSelectConfig