WinUsb_ReadIsochPipeAsap関数 (winusb.h)
WinUsb_ReadIsochPipeAsap関数は、等時性 IN エンドポイントからデータを読み取る要求を送信します。
構文
BOOL WinUsb_ReadIsochPipeAsap(
[in] WINUSB_ISOCH_BUFFER_HANDLE BufferHandle,
[in] ULONG Offset,
[in] ULONG Length,
[in] BOOL ContinueStream,
[in] ULONG NumberOfPackets,
PUSBD_ISO_PACKET_DESCRIPTOR IsoPacketDescriptors,
[in, optional] LPOVERLAPPED Overlapped
);
パラメーター
[in] BufferHandle
WinUsb_RegisterIsochBufferの以前の呼び出しによって登録された転送 バッファーへの不透明なハンドル。
[in] Offset
転送の開始を基準にしてバッファーにオフセットします。
[in] Length
転送バッファーの長さ (バイト単位)。
[in] ContinueStream
転送は、最後の保留中の転送の後の最初のフレームでスケジュールできる場合にのみ送信する必要があることを示します。
[in] NumberOfPackets
転送バッファーを保持するために必要な等時パケットの合計数。 また、 IsoPacketDescriptors によって指される配列内の要素の数も示します。
IsoPacketDescriptors
転送 内の 各等時パケットの詳細を受け取るUSBD_ISO_PACKET_DESCRIPTORの配列。
[in, optional] Overlapped
非同期操作に使用 される OVERLAPPED 構造体へのポインター。
戻り値
操作が 成功した場合、WinUsb_ReadIsochPipeAsapは TRUE を返します。 それ以外の場合、この関数は FALSE を返し、呼び出し元は GetLastError を呼び出すことによってログに記録されたエラーを取得できます。
呼び出し元が ContinueStream を TRUE に設定した場合、Winusb.sysが 1 つ以上のフレームを削除せずにストリームを続行するように転送をスケジュールできない場合、転送は失敗します。
解説
WinUsb_ReadIsochPipeAsap すると、USB ドライバー スタックは転送の開始フレーム番号を選択できます。 エンドポイントで 1 つ以上の転送が既に保留中の場合、転送は、現在保留中の最後の転送の最後のフレーム番号の直後のフレーム番号に対してスケジュールされます。
WinUsb_ReadIsochPipeAsap は転送バッファーをパケット化して、各間隔でホストが間隔ごとに許容される最大バイト数を受信できるようにします。 最大バイト数は、完全および高速エンドポイントのエンドポイント記述子と SuperSpeed エンドポイントのエンドポイントコンパニオン記述子で指定されています。 呼び出し元がデバイスからデータをストリーミングするために複数の読み取り要求を送信する場合、転送サイズは間隔あたりの最大バイト数の倍数である必要があります ( WinUsb_QueryPipeExによって返されます)。 * 8 / interval。
基になるカーネル モード インターフェイスで使用される転送パッケージのため、アプリケーションまたはドライバーへの最も短い待機時間の通知は 1 ミリ秒間隔です。
要件
サポートされている最小のクライアント | Windows 8.1 |
サポートされている最小のサーバー | Windows Server 2012 R2 |
対象プラットフォーム | ユニバーサル |
Header | winusb.h (Winusb.h を含む) |
Library | Winusb.lib |
[DLL] | Winusb.dll |