次の方法で共有


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

関連項目

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

WinUSB 関数