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


Функция 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 (если используется ПИО).

Если вызов SerCxProgressTransmit не завершает все невыполненные действия для операции записи, вызывающий объект должен вызвать SerCxRetrieveTransmitBuffer снова, чтобы получить новый дескриптор буфера и продолжить передачу данных.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows 8.
целевая платформа Всеобщий
заголовка sercx.h
IRQL <= DISPATCH_LEVEL

См. также

SERCX_STATUS

SERIAL_TIMEOUTS

SerCxRetrieveTransmitBuffer