SerCxProgressTransmit 関数 (sercx.h)
SerCxProgressTransmit メソッドは、現在の書き込み (送信) 操作の進行状況を報告します。
構文
NTSTATUS SerCxProgressTransmit(
[in] WDFDEVICE Device,
[in] ULONG BytesTransmitted,
[in] SERCX_STATUS TransmitStatus
);
パラメーター
[in] Device
シリアル コントローラーを表すフレームワーク デバイス オブジェクトへの WDFDEVICE ハンドル。
[in] BytesTransmitted
SerCxRetrieveTransmitBuffer メソッドの最新の呼び出しによって取得された送信バッファーから呼び出し元がコピーしたデータのバイト数。
[in] TransmitStatus
送信操作の現在の状態。 このパラメーターを次のいずれかの値に設定します。
- SerCxStatusSuccess
- SerCxStatusCancelled
メモSerCxStatusTimeout 値は、受信操作に対してのみ有効です。 送信操作に対して間隔タイムアウトを指定することはできません。 詳細については、「 SERIAL_TIMEOUTS」を参照してください。
戻り値
SerCxProgressTransmit は、成功した場合STATUS_SUCCESSを返します。 エラーの戻り値として考えられるのは、次の状態コードです。
リターン コード | 説明 |
---|---|
|
BytesTransmitted 値が使用可能なバッファー長を超えています。または TransmitStatus 値が無効です。 |
|
メソッドが間違った IRQL で呼び出されました。または WDFDEVICE ハンドルが無効です。または、ドライバーがこの送信操作の出力バッファーを取得していません。 |
|
送信操作は既に取り消されています。 |
注釈
シリアル コントローラー ドライバーは、未処理の書き込み操作の進行状況を報告するには、このメソッドを呼び出します。 通常、シリアル コントローラー ドライバーは、DMA 完了コールバック (ドライバーが DMA を使用してデータを読み取る場合) または送信/受信 DPC 関数 (PIO が使用されている場合) からこのメソッドを呼び出します。
SerCxProgressTransmit 呼び出しで書き込み操作の未処理の処理がすべて完了しない場合、呼び出し元は SerCxRetrieveTransmitBuffer をもう一度呼び出して新しいバッファー記述子を取得し、データの送信を続行する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | sercx.h |
IRQL | <= DISPATCH_LEVEL |