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


Функция 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
Дополнительные сведения об этих значениях см. в разделе SERCX_STATUS.

Возвращаемое значение

SerCxProgressReceive возвращает STATUS_SUCCESS случае успешного выполнения. Возможные возвращаемые значения ошибок включают следующие коды состояния.

Код возврата Описание
STATUS_INVALID_PARAMETER
Значение BytesReceived превышает доступную длину буфера; или недопустимое значение ReceiveStatus .
STATUS_INVALID_DEVICE_REQUEST
Метод был вызван в неправильном irQL; или недопустимый дескриптор WDFDEVICE; или драйвер не получил входной буфер для этой операции получения.
STATUS_CANCELLED
Операция получения уже отменена.

Комментарии

Драйвер последовательного контроллера вызывает этот метод, чтобы сообщить о ходе выполнения операции чтения. Как правило, драйвер последовательного контроллера вызывает этот метод из обратного вызова завершения DMA (если драйвер использует DMA для чтения данных) или из функции DPC передачи и получения (если используется PIO).

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

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 8.
Целевая платформа Универсальное
Верхняя часть sercx.h
IRQL <= DISPATCH_LEVEL

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

SERCX_STATUS

SerCxRetrieveReceiveBuffer