Функция SerCxRetrieveReceiveBuffer (sercx.h)
Метод SerCxRetrieveReceiveBuffer получает входной буфер, в который можно загрузить данные, полученные из последовательного порта.
Синтаксис
NTSTATUS SerCxRetrieveReceiveBuffer(
[in] WDFDEVICE Device,
[in] ULONG Length,
[in, out] PSERCX_BUFFER_DESCRIPTOR BufferDescriptor
);
Параметры
[in] Device
Дескриптор WDFDEVICE для объекта устройства платформы, представляющего последовательный контроллер.
[in] Length
Запрошенная длина буфера в байтах. Если вызов SerCxRetrieveReceiveBuffer выполнен успешно, вызывающий объект получает входной буфер, содержащий до байтов доступного пространства. (Доступное пространство в буфере может быть меньше длины байтов.) SerCxRetrieveReceiveBuffer записывает фактическое количество байтов доступного пространства в элемент Length структуры, на который указывает параметр BufferDescriptor .
[in, out] BufferDescriptor
Указатель на структуру SERCX_BUFFER_DESCRIPTOR , выделенную вызывающим объектом. Эта структура описывает буфер данных, используемый для операции получения. Вызывающий объект ранее вызывал функцию SERCX_BUFFER_DESCRIPTOR_INIT для инициализации этой структуры. SerCxRetrieveTransmitBuffer записывает данные в элементы Buffer и Length этой структуры.
Возвращаемое значение
SerCxRetrieveReceiveBuffer возвращает STATUS_SUCCESS в случае успешного выполнения. Возможные возвращаемые значения ошибок включают следующие коды состояния.
Код возврата | Описание |
---|---|
|
Метод был вызван в неправильном irQL; или недопустимый дескриптор WDFDEVICE; либо Device или BufferDescriptor имеет значение NULL; или драйвер уже имеет буфер приема. |
|
Для структуры SERCX_BUFFER_DESCRIPTOR указан неправильный размер. |
|
Не удалось выделить системные ресурсы (обычно это память). |
Комментарии
Драйвер последовательного контроллера вызывает этот метод для получения буфера для хранения входных данных из текущей операции получения (чтения).
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows 8. |
Целевая платформа | Универсальное |
Верхняя часть | sercx.h |
IRQL | <= DISPATCH_LEVEL |