WinUsb_WriteIsochPipeAsap関数 (winusb.h)

WinUsb_WriteIsochPipeAsapは、等時性 OUT エンドポイントにバッファーの内容を書き込むための要求を送信します。

構文

BOOL WinUsb_WriteIsochPipeAsap(
  [in]           WINUSB_ISOCH_BUFFER_HANDLE BufferHandle,
  [in]           ULONG                      Offset,
  [in]           ULONG                      Length,
  [in]           BOOL                       ContinueStream,
  [in, optional] LPOVERLAPPED               Overlapped
);

パラメーター

[in] BufferHandle

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

[in] Offset

転送の開始を基準にしてバッファーにオフセットします。

[in] Length

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

[in] ContinueStream

転送は、最後の保留中の転送の後の最初のフレームでスケジュールできる場合にのみ送信する必要があることを示します。

[in, optional] Overlapped

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

戻り値

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

呼び出し元が ContinueStream を TRUE に設定した場合、Winusb.sys が 1 つ以上のフレームを削除せずにストリームを続行するように転送をスケジュールできない場合、転送は失敗します。

注釈

WinUsb_WriteIsochPipeAsap すると、USB ドライバー スタックは転送の開始フレーム番号を選択できます。 エンドポイントで 1 つ以上の転送が既に保留中の場合、転送は、現在保留中の最後の転送の最後のフレーム番号の直後のフレーム番号に対してスケジュールされます。

WinUsb_WriteIsochPipeAsap は、転送バッファーをパケット化して、各 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 関数