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 |