다음을 통해 공유


IoInitializeIrp 함수(wdm.h)

IoInitializeIrp 루틴은 호출자가 할당한 지정된 IRP를 초기화합니다.

구문

void IoInitializeIrp(
  [in, out] PIRP   Irp,
  [in]      USHORT PacketSize,
  [in]      CCHAR  StackSize
);

매개 변수

[in, out] Irp

초기화할 IRP에 대한 포인터입니다.

[in] PacketSize

IRP의 크기(바이트)를 지정합니다.

[in] StackSize

IRP의 스택 위치 수를 지정합니다.

반환 값

없음

설명

드라이버는 IoInitializeIrp 를 사용하여 원시 메모리로 할당된 드라이버의 IRP를 초기화합니다. IoInitializeIrp를 사용하여 IoAllocateIrp에서 할당한 IRP를 초기화하지 마세요. IoAllocateIrp 는 IRP의 멤버를 자동으로 초기화합니다.

드라이버는 IoInitializeIrp 을 사용하여 특정 상황에서만 다시 사용할 수 있도록 IRP를 다시 초기화할 수 있습니다. 자세한 내용은 IRP 다시 사용 을 참조하세요.

드라이버가 할당된 IRP와 MDL을 연결하는 경우 드라이버는 IRP가 완료되면 MDL을 해제할 책임이 있습니다.

중간 또는 최상위 수준의 드라이버는 IoBuildDeviceIoControlRequest, IoBuildAsynchronousFsdRequest 또는 IoBuildSynchronousFsdRequest 를 호출하여 하위 수준 드라이버에 보내는 요청을 설정할 수도 있습니다. 최상위 드라이버만 IoMakeAssociatedIrp을 호출할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000부터 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs(storport), IoReuseIrp(wdm)

추가 정보

IRP

IoAllocateIrp

IoAllocateMdl

IoBuildPartialMdl

IoFreeIrp

IoFreeMdl

IoReuseIrp

IoSetNextIrpStackLocation

IoSizeOfIrp