Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Применимо к KMDF и UMDF]
Метод WdfUsbInterfaceGetConfiguredPipe возвращает дескриптор объекту канала платформы, связанному с указанным интерфейсом USB-устройства и индексом канала. При необходимости метод также возвращает сведения о канале.
Синтаксис
WDFUSBPIPE WdfUsbInterfaceGetConfiguredPipe(
[in] WDFUSBINTERFACE UsbInterface,
[in] UCHAR PipeIndex,
[in, out, optional] PWDF_USB_PIPE_INFORMATION PipeInfo
);
Параметры
[in] UsbInterface
Дескриптор объекта USB-интерфейса, полученный путем вызова WdfUsbTargetDeviceGetInterface.
[in] PipeIndex
Отсчитываемый от нуля индекс в набор объектов канала платформы, связанных с указанным объектом интерфейса.
[in, out, optional] PipeInfo
Указатель на структуру, выделенную вызывающим объектом, WDF_USB_PIPE_INFORMATION, в которую заполняется платформа. Этот параметр является необязательным и может быть null.
Возвращаемое значение
Если операция выполнена успешно, WdfUsbInterfaceGetConfiguredPipe возвращает дескриптор объекту канала платформы, связанному с указанным объектом интерфейса и индексом канала. Метод возвращает значение NULL, если размер WDF_USB_PIPE_INFORMATION структуры неверный или если значение индекса канала слишком велико.
Ошибка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Замечания
Драйвер может вызывать WdfUsbInterfaceGetConfiguredPipe после вызова WdfUsbTargetDeviceSelectConfig.
Дополнительные сведения о методе WdfUsbInterfaceGetConfiguredPipe и целевых объектах ввода-вывода USB см. в целевых объектов USB-ввода-вывода.
Примеры
В следующем примере кода отправляется запрос 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 (include 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