Метод IWDFUsbInterface::GetNumEndPoints (wudfusb.h)
[ предупреждение: UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. Новые функции не добавляются в UMDF 1, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2. Дополнительные сведения см. в разделе Начало работы с UMDF.]
Метод GetNumEndPoints извлекает количество конечных точек (каналов) в USB-интерфейсе.
Синтаксис
UCHAR GetNumEndPoints();
Возвращаемое значение
GetNumEndPoints возвращает количество конечных точек в USB-интерфейсе.
Замечания
Метод getNumEndPoints предоставляется для удобства, так как драйвер UMDF может получить количество конечных точек из bNumEndpoints члена структуры USB_INTERFACE_DESCRIPTOR, которую драйвер получает при вызове метода IWDFUsbInterface::GetInterfaceDescriptor.
Примеры
В следующем примере кода извлекается количество каналов в USB-интерфейсе, а затем извлекаются определенные типы каналов.
HRESULT hr;
UCHAR NumEndPoints;
NumEndPoints = pIUsbInterface->GetNumEndPoints();
if (NumEndPoints != NUM_OSRUSB_ENDPOINTS) {
hr = E_UNEXPECTED;
}
if (SUCCEEDED(hr)) {
for (UCHAR PipeIndex = 0; PipeIndex < NumEndPoints; PipeIndex++) {
hr = pIUsbInterface->RetrieveUsbPipeObject(PipeIndex,
&pIUsbPipe);
if (FAILED(hr)) {
// Output an error.
}
else {
if ( pIUsbPipe->IsInEndPoint() && (UsbdPipeTypeBulk == pIUsbPipe->GetType()) ) {
pIUsbInputPipe = pIUsbPipe;
}
else if ( pIUsbPipe->IsOutEndPoint() && (UsbdPipeTypeBulk == pIUsbPipe->GetType()) )
{
pIUsbOutputPipe = pIUsbPipe;
}
else
{
SAFE_RELEASE(pIUsbPipe);
}
}
Требования
Требование | Ценность |
---|---|
завершение поддержки | Недоступно в UMDF 2.0 и более поздних версиях. |
целевая платформа | Настольный |
минимальная версия UMDF | 1.5 |
заголовка | wudfusb.h (include Wudfusb.h) |
DLL | WUDFx.dll |