WinUsb_ReadIsochPipe関数 (winusb.h)

WinUsb_ReadIsochPipe関数は、等時性 IN エンドポイントからデータを読み取ります。

構文

BOOL WinUsb_ReadIsochPipe(
  [in]           WINUSB_ISOCH_BUFFER_HANDLE  BufferHandle,
  [in]           ULONG                       Offset,
  [in]           ULONG                       Length,
  [in, out]      PULONG                      FrameNumber,
  [in]           ULONG                       NumberOfPackets,
  [out]          PUSBD_ISO_PACKET_DESCRIPTOR IsoPacketDescriptors,
  [in, optional] LPOVERLAPPED                Overlapped
);

パラメーター

[in] BufferHandle

以前の WinUsb_RegisterIsochBuffer 呼び出しによって登録された転送バッファーへの不透明なハンドル。

[in] Offset

転送の開始に対する相対的なバッファーへのオフセット。

[in] Length

転送バッファーの長さ (バイト単位)。

[in, out] FrameNumber

入力時に、 は転送の開始フレーム番号を示します。 出力時には、転送で使用された最後のフレームに続くフレームのフレーム番号が含まれます。

[in] NumberOfPackets

転送バッファーを保持するために必要な等時性パケットの合計数。 また、 IsoPacketDescriptors が指す配列内の要素の数も示します。

[out] IsoPacketDescriptors

USBD_ISO_PACKET_DESCRIPTOR構造体の配列。 転送が完了すると、各要素には等時パケットの状態とサイズが含まれます。

[in, optional] Overlapped

非同期操作に使用される OVERLAPPED 構造体へのポインター。

戻り値

操作が 成功した場合、WinUsb_ReadIsochPipeは TRUE を返します。 それ以外の場合、この関数は FALSE を返し、呼び出し元は GetLastError を呼び出すことによってログに記録されたエラーを取得できます。

注釈

WinUsb_ReadIsochPipe 転送バッファーをパケット化して、各 1 ミリ秒間隔で、ホストが間隔ごとに許容される最大バイト数を受け取ることができるようにします。 最大バイト数は、完全および高速エンドポイントのエンドポイント記述子と、SuperSpeed エンドポイントのエンドポイント コンパニオン記述子で指定されています。 呼び出し元がデバイスからデータをストリーミングするために複数の読み取り要求を送信する場合、転送サイズは間隔あたりの最大バイトの倍数 ( WinUsb_QueryPipeExによって返される) * 8 / interval である必要があります。

基になるカーネル モード インターフェイスで使用される転送パッケージのため、アプリケーションまたはドライバーへの最も短い待機時間の通知は 1 ミリ秒間隔です。

要件

要件
サポートされている最小のクライアント Windows 8.1
サポートされている最小のサーバー Windows Server 2012 R2
対象プラットフォーム ユニバーサル
Header winusb.h (Winusb.h を含む)
Library Winusb.lib
[DLL] Winusb.dll

こちらもご覧ください

WinUSB デスクトップ アプリから USB 等時性転送を送信する

WinUSB 関数