Функция 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 (если используется ПИО).
Если вызов SerCxProgressTransmit не завершает все невыполненные действия для операции записи, вызывающий объект должен вызвать SerCxRetrieveTransmitBuffer снова, чтобы получить новый дескриптор буфера и продолжить передачу данных.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows 8. |
целевая платформа | Всеобщий |
заголовка | sercx.h |
IRQL | <= DISPATCH_LEVEL |