다음을 통해 공유


IofCallDriver 함수(wdm.h)

주의

대신 IoCallDriver 를 호출합니다.

지정된 디바이스 개체와 연결된 드라이버에 IRP를 보냅니다.

구문

NTSTATUS IofCallDriver(
  PDEVICE_OBJECT        DeviceObject,
  __drv_aliasesMem PIRP Irp
);

매개 변수

DeviceObject

요청된 I/O 작업의 대상 디바이스를 나타내는 디바이스 개체에 대한 포인터입니다.

Irp

IRP에 대한 포인터입니다.

반환 값

적절한 NTSTATUS 값을 반환합니다.

설명

IoCallDriver를 호출하기 전에 호출 드라이버는 대상 드라이버에 대한 IRP에서 I/O 스택 위치를 설정해야 합니다. 자세한 내용은 드라이버 스택 아래로 IRP 전달을 참조하세요.

IoCallDriver는 호출되는 드라이버에 대한 IO_STACK_LOCATION 구조체의 DeviceObject 멤버에 DeviceObject 입력 매개 변수를 할당합니다.

상위 수준 드라이버가 IRP에 대한 IoCompletion 루틴을 설정하기 위해 IoSetCompletionRoutine을 호출하지 않는 한 IoCallDriver에 대한 호출에서 전달된 IRP는 상위 수준 드라이버에 액세스할 수 없게 됩니다. 있는 경우 IoCompletion 루틴에 대한 IRP 입력에는 하위 드라이버에서 설정한 I/O 상태 블록이 있으며 모든 하위 수준 드라이버의 I/O 스택 위치는 0으로 채워집니다.

Windows Server 2003, Windows XP 및 Windows 2000용 드라이버는 전원 IRP(IRP_MJ_POWER)를 전달하기 위해 IoCallDriver 대신 PoCallDriver를 사용해야 합니다.

자세한 내용은 IoCallDriver 호출 및 PoCallDriver 호출을 참조하세요.

요구 사항

요구 사항
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <= DISPATCH_LEVEL
DDI 규정 준수 규칙 CompleteRequestStatusCheck, CompletionRoutineRegistered, DeleteDevice, ForwardedAtBadIrql, ForwardedAtBadIrqlAllocate, ForwardedAtBadIrqlFsdAsync, ForwardedAtBadIrqlFsdSync, HwStorPortProhibitedDDDIs(storport), IoAllocateForward, IoAllocateIrpSignalEventInCompletionTimeout, IoBuildDeviceControlWait, IoBuildDeviceControlWaitTimeout, IoBuildFsdForward, IoBuildSynchronousFsdRequestWait, IoBuildSynchronousFsdRequestWaitTimeout, IoSetCompletionRoutineExCheck, IrpProcessingComplete, LowerDriverReturn, MarkDevicePower, MarkQueuedIrps, MarkIrpPending, MarkIrpPending2, MarkPower(wdm), MarkPowerDown(wdm), MarkQueryRelations(wdm), MarkStartDevice(wdm), PendedCompletedRequest, PendedCompletedRequest2, PendedCompletedRequest3, PendedCompletedRequestEx, PnpIrpCompletion, PowerDownFail, PowerUpFail, RemoveLockForward, RemoveLockForward2, RemoveLockForwardDeviceControl, RemoveLockForwardDeviceControl2, RemoveLockForwardDeviceControlInternal, RemoveLockForwardDeviceControlInternal2, RemoveLockForwardRead, RemoveLockForwardRead2, RemoveLockForwardWrite, RemoveLockForwardWrite2, RemoveLockMnRemove2, RemoveLockMnSurpriseRemove, RemoveLockQueryMnRemove, TargetRelationNeedsRef, WmiForward

추가 정보

IoAllocateIrp

IoBuildAsynchronousFsdRequest

IoBuildDeviceIoControlRequest

IoBuildSynchronousFsdRequest

IoSetCompletionRoutine

PoCallDriver