次の方法で共有


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
これらの値の詳細については、「 SERCX_STATUS」を参照してください。
メモSerCxStatusTimeout 値は、受信操作に対してのみ有効です。 送信操作に対して間隔タイムアウトを指定することはできません。 詳細については、「 SERIAL_TIMEOUTS」を参照してください。
 

戻り値

SerCxProgressTransmit は、成功した場合STATUS_SUCCESSを返します。 エラーの戻り値として考えられるのは、次の状態コードです。

リターン コード 説明
STATUS_INVALID_PARAMETER
BytesTransmitted 値が使用可能なバッファー長を超えています。または TransmitStatus 値が無効です。
STATUS_INVALID_DEVICE_REQUEST
メソッドが間違った IRQL で呼び出されました。または WDFDEVICE ハンドルが無効です。または、ドライバーがこの送信操作の出力バッファーを取得していません。
STATUS_CANCELLED
送信操作は既に取り消されています。

注釈

シリアル コントローラー ドライバーは、未処理の書き込み操作の進行状況を報告するには、このメソッドを呼び出します。 通常、シリアル コントローラー ドライバーは、DMA 完了コールバック (ドライバーが DMA を使用してデータを読み取る場合) または送信/受信 DPC 関数 (PIO が使用されている場合) からこのメソッドを呼び出します。

SerCxProgressTransmit 呼び出しで書き込み操作の未処理の処理がすべて完了しない場合、呼び出し元は SerCxRetrieveTransmitBuffer をもう一度呼び出して新しいバッファー記述子を取得し、データの送信を続行する必要があります。

要件

要件
サポートされている最小のクライアント Windows 8 以降で使用できます。
対象プラットフォーム ユニバーサル
Header sercx.h
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

SERCX_STATUS

SERIAL_TIMEOUTS

SerCxRetrieveTransmitBuffer