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


Функция SerCxRetrieveReceiveMdl (sercx.h)

Метод SerCxRetrieveReceiveMdl извлекает MDL, описывающий буфер, используемый для получения следующего блока входных данных.

Синтаксис

NTSTATUS SerCxRetrieveReceiveMdl(
  [in]  WDFDEVICE Device,
  [out] PMDL      *Mdl
);

Параметры

[in] Device

Дескриптор WDFDEVICE для объекта устройства платформы, представляющего последовательный контроллер.

[out] Mdl

Указатель на расположение, в которое метод записывает указатель на MDL.

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

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

Код возврата Описание
STATUS_INVALID_DEVICE_REQUEST
Это значение возвращается, если происходит одно из следующих действий:
  • Не существует незаполненных запросов на получение MDL.
  • Текущее число полученных байтов (как указано методом SerCxProgressReceive ) не равно нулю.
  • Буфер уже получен (и соответствующий вызов метода SerCxProgressReceive еще не выполнен).
  • MDL уже извлечен (и соответствующий вызов метода SerCxProgressReceive еще не выполнен).

Комментарии

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

Дополнительные сведения о списках MDL см. в разделе Использование многомерных выражений.

Требования

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

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

SerCxProgressReceive