Функция 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
Возвращаемое значение
SerCxProgressTransmit возвращает STATUS_SUCCESS в случае успешного выполнения. Возможные возвращаемые значения ошибок включают следующие коды состояния.
Код возврата | Описание |
---|---|
|
Значение BytesTransmitted превышает доступную длину буфера; или недопустимое значение TransmitStatus . |
|
Метод был вызван в неправильном IRQL; или недопустимый дескриптор WDFDEVICE; или драйвер не получил выходной буфер для этой операции передачи. |
|
Операция передачи уже отменена. |
Комментарии
Драйвер последовательного контроллера вызывает этот метод, чтобы сообщить о ходе выполнения операции записи. Как правило, драйвер последовательного контроллера вызывает этот метод из обратного вызова завершения DMA (если драйвер использует DMA для чтения данных) или из функции DPC передачи и получения (если используется PIO).
Если вызов SerCxProgressTransmit не завершает все незавершенные работы для операции записи, вызывающий объект должен снова вызвать SerCxRetrieveTransmitBuffer , чтобы получить новый дескриптор буфера и продолжить передачу данных.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows 8. |
Целевая платформа | Универсальное |
Верхняя часть | sercx.h |
IRQL | <= DISPATCH_LEVEL |