다음을 통해 공유


IoSetNextIrpStackLocation 함수(wdm.h)

IoSetNextIrpStackLocation 루틴은 드라이버 할당 IRP의 IRP 스택 위치를 호출자의 위치로 설정합니다.

통사론

void IoSetNextIrpStackLocation(
  [in, out] PIRP Irp
);

매개 변수

[in, out] Irp

스택 위치를 설정할 IRP에 대한 포인터입니다.

반환 값

없음

발언

일반적으로 이 루틴은 드라이버에서 거의 사용되지 않습니다. 주로 다른 드라이버로 보내기 위해 할당한 IRP에서 자신의 스택 위치가 필요한 드라이버에서 사용됩니다.

IoSetNextIrpStackLocation 일반적으로 필요하지 않습니다.

  • 드라이버는 다른 상위 수준 드라이버에서 전달하는 IRP를 받았으므로 이미 스택 위치를 소유하고 있습니다.
  • 또는 드라이버가 IRP를 할당했지만 주소가 IoCompletion 루틴에 전달될 수 있는 컨텍스트 블록에 필요한 모든 항목을 유지할 수 있으므로 자체 스택 위치가 필요하지 않습니다.
이 루틴이 호출되는 경우 특히 IoAllocateIrp 또는 IoMakeAssociatedIrp사용하여 IRP를 할당하는 경우 주의해야 합니다. 할당 드라이버의 작성자는 호출자별 스택 위치가 IoCallDriver사용하여 IRP를 보내는 하위 수준 드라이버에 필요한 스택 위치 수에 포함되지 않는다는 점을 기억해야 합니다. 드라이버는 IoAllocateIrp 호출하거나 두 루틴에서 반환된 IRP를 사용하여 IoSetNextIrpStackLocation 호출하는 경우 IoMakeAssociatedIrp 호출할 때 스택 위치를 명시적으로 지정해야 합니다.

드라이버는 IoBuildAsynchronousFsdRequest, IoBuildDeviceIoControlRequest또는 IoBuildSynchronousFsdRequest호출하여 할당한 IRP로 IoSetNextIrpStackLocation 호출할 수 없습니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows 2000부터 사용할 수 있습니다.
대상 플랫폼 바탕 화면
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
IRQL 모든 수준

참고 항목

IO_STACK_LOCATION

IoAllocateIrp

IoBuildAsynchronousFsdRequest

IoBuildDeviceIoControlRequest

IoBuildSynchronousFsdRequest

IoCallDriver

IoSetCompletionRoutine