SerCxGetRingBufferUtilization メソッドを使用すると、シリアル コントローラー ドライバーは、シリアル ポートから受信したデータによって現在、先行入力リング バッファーの量を確認できます。
構文
VOID SerCxGetRingBufferUtilization(
[in] WDFDEVICE Device,
[out, optional] PULONG BytesUsed,
[out, optional] PULONG BufferSize
);
パラメーター
[in] Device
シリアル コントローラーを表すフレームワーク デバイス オブジェクトへの WDFDEVICE ハンドル。
[out, optional] BytesUsed
受信したデータの格納に使用される先行型リング バッファーに現在含まれている未読データのバイト数。
[out, optional] BufferSize
受信したデータの格納に使用される先行型リング バッファーのサイズ (バイト単位)。
戻り値
何一つ
備考
シリアル コントローラー ドライバーは、この関数を呼び出して、先行入力リング バッファーで使用可能な記憶域領域の量を決定します。 シリアル コントローラー拡張機能 (SerCx) は、クライアントからの読み取り要求が現在処理されていないときにシリアル コント ローラー ドライバーがシリアル ポートから受信するデータを格納するこのバッファーを保持します。 この関数は、ドライバーがソフトウェア フロー制御 (XON/XOFF) を正確に実行するために必要な情報を提供します。
ソフトウェア フロー制御を実装するために、シリアル コントローラー ドライバーは、先行入力リング バッファーで使用可能な領域の量を監視します。 使用可能な領域 (バイト単位) は、BufferSize
SerCx は、現在のフロー制御とハンドシェイク設定のコンテキストで、先行入力リング バッファー内の使用可能な領域を評価します。 先行入力リング バッファーが完全に空になると、SerCx はドライバーの EvtSerCxReceive コールバック関数を呼び出して、ドライバーが XON を送信してデータの受信を再開できるようにします。 EvtSerCxReceive 関数は、SerCxGetRingBufferUtilization を呼び出して、XON を送信するかどうかを判断できます。
必要条件
| 要件 | 価値 |
|---|---|
| サポートされる最小クライアント | Windows 8 以降で使用できます。 |
| ターゲット プラットフォーム の |
万国 |
| ヘッダー | sercx.h |
| IRQL | <= DISPATCH_LEVEL |
関連項目
EvtSerCxReceive の