다음을 통해 공유


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 로 설정해야 합니다. 이는 드라이버가 다른 IRP를 할당하는 I/O 요청을 시작하는 스레드의 컨텍스트에서 호출되는 최상위 드라이버에 의해서만 TRUE 로 설정할 수 있습니다.

[in] Buffer

이 IRP와 연결할 메모리 설명자 목록이 포함된 버퍼에 대한 포인터입니다.

반환 값

RxCeAllocateIrpWithMDL 은 성공 시 IRP에 대한 포인터 또는 오류 발생 시 NULL 포인터를 반환합니다.

설명

RxCeAllocateIrpWithMDL의 목표는 다른 구성 요소에 발급된 다음 중단된 IRP를 보다 쉽게 디버깅할 수 있도록 하는 것입니다. RxCeAllocateIrpWithMDL을 사용하여 발급된 IRP는 RDBSS에서 유지 관리하는 전체 IRP 목록에 큐에 대기됩니다. 따라서 RX_CONTEXT 전송 완료를 기다리는 경우 전송에서 대기 중인 IRP를 찾기 위해 전역 목록을 확인할 수 있습니다.

RxCeFreeIrp을 사용하여 IRP가 완료되면 RxCeAllocateIrpWithMDL로 할당된 연결된 메모리 설명자 목록과 함께 할당된 IRP를 해제해야 합니다.

IoAllocateIrp 는 IRP의 멤버를 자동으로 초기화하고 RDBSS에서 유지 관리하는 전역 IRP 목록에 IRP를 삽입합니다. IRP와 연결할 MDL의 메모리를 할당할 수 없는 경우 생성된 IRP가 해제되고 RxCeAllocateIrpWithMDL 은 실패를 나타내는 NULL 포인터를 반환합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 RxCeAllocateIrpWithMDL 루틴은 Windows XP에서만 사용할 수 있습니다.
대상 플랫폼 데스크톱
머리글 rxce.h(Rxce.h 포함)
IRQL <= APC_LEVEL

추가 정보

Mdl

RxCeFreeIrp