共用方式為


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
NoteSerCxStatusTimeout 值僅適用於接收作業。 無法指定傳輸作業的時間間隔逾時。 如需詳細資訊,請參閱 SERIAL_TIMEOUTS
 

傳回值

如果成功,SerCxProgressTransmit 會傳回STATUS_SUCCESS。 可能的錯誤傳回值包括下列狀態代碼。

傳回碼 描述
STATUS_INVALID_PARAMETER
BytesTransmitted 值超過可用的緩衝區長度;或 TransmitStatus 值無效。
STATUS_INVALID_DEVICE_REQUEST
在錯誤的 IRQL 呼叫方法;或 WDFDEVICE 句柄無效;或驅動程式尚未取得此傳輸作業的輸出緩衝區。
STATUS_CANCELLED
傳輸作業已經取消。

言論

序列控制器驅動程式會呼叫此方法,以報告未完成寫入作業的進度。 一般而言,序列控制器驅動程式會從其 DMA 完成回呼呼叫此方法(如果驅動程式使用 DMA 來讀取數據),或從其傳輸/接收 DPC 函式中呼叫此方法(如果使用 PIO)。

如果 SerCxProgressTransmit 呼叫未完成寫入作業的所有未完成工作,呼叫端必須再次呼叫 SerCxRetrieveTransmitBuff er,以取得新的緩衝區描述元並繼續傳輸數據。

要求

要求 價值
最低支援的用戶端 從 Windows 8 開始提供。
目標平臺 普遍
標頭 sercx.h
IRQL <= DISPATCH_LEVEL

另請參閱

SERCX_STATUS

SERIAL_TIMEOUTS

SerCxRetrieveTransmitBuffer