다음을 통해 공유


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, HwStorPortProhibitedDDIs(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