Функция SerCxProgressReceive (sercx.h)
Метод SerCxProgressReceive сообщает о ходе текущей операции чтения (получения).
Синтаксис
NTSTATUS SerCxProgressReceive(
[in] WDFDEVICE Device,
[in] ULONG BytesReceived,
[in] SERCX_STATUS ReceiveStatus
);
Параметры
[in] Device
Дескриптор WDFDEVICE для объекта устройства платформы, представляющего последовательный контроллер.
[in] BytesReceived
Количество байтов данных, загруженных вызывающим объектом в буфер приема, полученных последним вызовом метода SerCxRetrieveReceiveBuffer .
[in] ReceiveStatus
Текущее состояние операции получения. Задайте для этого параметра одно из следующих значений:
- SerCxStatusSuccess
- SerCxStatusCancelled
- SerCxStatusTimeout
Возвращаемое значение
SerCxProgressReceive возвращает STATUS_SUCCESS случае успешного выполнения. Возможные возвращаемые значения ошибок включают следующие коды состояния.
Код возврата | Описание |
---|---|
|
Значение BytesReceived превышает доступную длину буфера; или недопустимое значение ReceiveStatus . |
|
Метод был вызван в неправильном irQL; или недопустимый дескриптор WDFDEVICE; или драйвер не получил входной буфер для этой операции получения. |
|
Операция получения уже отменена. |
Комментарии
Драйвер последовательного контроллера вызывает этот метод, чтобы сообщить о ходе выполнения операции чтения. Как правило, драйвер последовательного контроллера вызывает этот метод из обратного вызова завершения DMA (если драйвер использует DMA для чтения данных) или из функции DPC передачи и получения (если используется PIO).
Если SerCxProgressReceive не завершает все незавершенные работы для операции чтения, вызывающий объект должен снова вызвать метод SerCxRetrieveReceiveBuffer , чтобы получить новый дескриптор буфера и продолжить получение данных.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows 8. |
Целевая платформа | Универсальное |
Верхняя часть | sercx.h |
IRQL | <= DISPATCH_LEVEL |