Поделиться через


Функция 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.
Целевая платформа Универсальное
Верхняя часть sercx.h
IRQL <= DISPATCH_LEVEL

См. также раздел

SERCX_STATUS

SERIAL_TIMEOUTS

SerCxRetrieveTransmitBuffer