IWDFUsbInterface::GetNumEndPoints method
The GetNumEndPoints method retrieves the number of endpoints (pipes) on a USB interface.
Syntax
UCHAR GetNumEndPoints();
Parameters
This method has no parameters.
Return value
GetNumEndPoints returns the number of endpoints on the USB interface.
Remarks
The GetNumEndPoints method is provided for convenience because a UMDF driver can obtain the number of endpoints from the bNumEndpoints member of the USB_INTERFACE_DESCRIPTOR structure that the driver retrieves when it calls the IWDFUsbInterface::GetInterfaceDescriptor method.
Examples
The following code example retrieves the number of pipes on a USB interface and then retrieves particular types of pipes.
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);
}
}
Requirements
|
End of support | Unavailable in UMDF 2.0 and later. |
|---|---|
|
Minimum UMDF version | 1.5 |
|
Header |
|
|
DLL |
|
See also
Show:
