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


Функция RxCeAllocateIrpWithMDL (rxce.h)

RxCeAllocateIrpWithMDL выделяет IRP и связывает его с существующим списком дескрипторов памяти.

Синтаксис

PIRP RxCeAllocateIrpWithMDL(
  [in] IN CCHAR   StackSize,
  [in] IN BOOLEAN ChargeQuota,
  [in] IN PMDL    Buffer
);

Параметры

[in] StackSize

Размер стека, выделенный для IRP.

[in] ChargeQuota

Этот параметр должен иметь значение FALSE промежуточными драйверами. Это можно задать для true только драйверами высокого уровня, вызываемыми в контексте потока, который вызывает запрос ввода-вывода, для которого драйвер выделяет другой IRP.

[in] Buffer

Указатель на буфер, содержащий список дескрипторов памяти, связанный с этим IRP.

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

RxCeAllocateIrpWithMDL возвращает указатель на IRP в успешном выполнении или указатель NULL на ошибку.

Замечания

Цель RxCeAllocateIrpWithMDL заключается в том, чтобы упростить отладку IRPs, выданных другим компонентам, а затем остановить работу. IrPs, выданные с помощью RxCeAllocateIrpWithMDL, помещаются в глобальный список IRPs, поддерживаемых RDBSS. Таким образом, когда RX_CONTEXT ожидает завершения отправки, можно просмотреть глобальный список, чтобы найти IRP, ожидающий в транспорте.

IRP, выделенный списком дескрипторов памяти, выделенным RxCeAllocateIrpWithMDL, должен быть освобожден при завершении IRP с помощью RxCeFreeIrp.

IoAllocateIrp автоматически инициализирует члены IRP и вставляет IRP в глобальный список IRP, поддерживаемых RDBSS. Если память для MDL, связанная с IRP, не может быть выделена, то созданный IRP освобождается и RxCeAllocateIrpWithMDL возвращает указатель NULL, указывающий на сбой.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Подпрограмма RxCeAllocateIrpWithMDL доступна только в Windows XP.
целевая платформа Настольный
заголовка rxce.h (include Rxce.h)
IRQL <= APC_LEVEL

См. также

MDL

RxCeFreeIrp