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。
如果驅動程式提供無效的物件句柄,就會發生錯誤檢查。
備註
您的驅動程式可以在呼叫 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;
}
}
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
最低 KMDF 版本 | 1.0 |
最低UMDF版本 | 2.0 |
標頭 | wdfusb.h (包含 Wdfusb.h) |
程式庫 | Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
DDI 合規性規則 | DriverCreate (kmdf) , KmdfIrql (kmdf) , KmdfIrql2 (kmdf) , KmdfIrqlExplicit (kmdf) , UsbKmdfIrql (kmdf) 、 UsbKmdfIrql2 (kmdf) 、UsbKmdfIrqlExplicit (kmdf) |
另請參閱
WdfUsbInterfaceGetNumConfiguredPipes