IoFreeIrp 함수(wdm.h)
IoFreeIrp 루틴은 호출자의 IoCompletion 루틴에서 호출자가 할당한 IRP를 해제합니다.
구문
void IoFreeIrp(
[in] PIRP Irp
);
매개 변수
[in] Irp
해제할 IRP에 대한 포인터입니다.
반환 값
없음
설명
이 루틴은 IoAllocateIrp 또는 IoBuildAsynchronousFsdRequest에 대한 상호입니다. 릴리스된 IRP는 호출자가 할당해야 합니다.
또한 이 루틴은 호출자가 연결된 IRP에 대한 STATUS_MORE_PROCESSING_REQUIRED 반환하는 IoCompletion 루틴을 설정하는 IoMakeAssociatedIrp에 할당된 IRP를 해제합니다.
IoFreeIrp 은 IRP에 연결할 수 있는 MDL을 해제하지 않습니다. IRP를 해제하는 드라이버는 이러한 MDL을 명시적으로 해제해야 합니다. 또한 MDL에서 설명하는 실제 페이지가 잠긴 경우 드라이버는 MDL을 해제하기 전에 페이지의 잠금을 해제해야 합니다. 그러나 드라이버는 이러한 페이지의 매핑을 명시적으로 해제할 필요가 없습니다. 대신 IoFreeMdl 은 MDL을 해제할 때 자동으로 페이지 매핑을 해제합니다. MDL 체인을 해제하는 방법을 보여 주는 코드 예제는 MDL 사용을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000부터 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
DDI 규정 준수 규칙 | HwStorPortProhibitedDDIs(storport), IoAllocateFree(wdm), IoBuildDeviceControlNoFree(wdm), IoBuildFsdFree(wdm), IoBuildSynchronousFsdRequestNoFree(wdm), IoFreeIrp(storport) |