次の方法で共有


IWDFUsbInterface::GetNumEndPoints メソッド (wudfusb.h)

[警告: UMDF 2 は UMDF の最新バージョンであり、UMDF 1 よりも優先されます。 すべての新しい UMDF ドライバーは、UMDF 2 を使用して記述する必要があります。 UMDF 1 には新機能が追加されておらず、新しいバージョンのWindows 10では UMDF 1 のサポートが制限されています。 ユニバーサル Windows ドライバーでは、UMDF 2 を使用する必要があります。 詳細については、「UMDF を使用したはじめに」を参照してください。

GetNumEndPoints メソッドは、USB インターフェイス上のエンドポイント (パイプ) の数を取得します。

構文

UCHAR GetNumEndPoints();

戻り値

GetNumEndPoints は、 USB インターフェイス上のエンドポイントの数を返します。

注釈

UMDF ドライバーは、IWDFUsbInterface::GetInterfaceDescriptor メソッドの呼び出し時にドライバーが取得するUSB_INTERFACE_DESCRIPTOR構造体の bNumEndpoints メンバーからエンドポイントの数を取得できるため、便宜上、GetNumEndPoints メソッドが提供されます。

次のコード例では、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
Header wudfusb.h (Wudfusb.h を含む)
[DLL] WUDFx.dll

こちらもご覧ください

IWDFUsbInterface

IWDFUsbInterface::GetInterfaceDescriptor

USB_INTERFACE_DESCRIPTOR