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 将 DeviceObject 输入参数分配给所调用驱动程序 的 IO_STACK_LOCATION 结构的 DeviceObject 成员。

在调用 IoCallDriver 时传递的 IRP 对更高级别的驱动程序不可访问,除非较高级别的驱动程序已调用 IoSetCompletionRoutine 来为 IRP 设置 IoCompletion 例程。 如果已设置,则 IoCompletion 例程的 IRP 输入由较低级别的驱动程序设置其 I/O 状态块,并且所有较低级别驱动程序的 I/O 堆栈位置都用零填充。

适用于 Windows Server 2003、Windows XP 和 Windows 2000 的驱动程序必须使用 PoCallDriver 而不是 IoCallDriver 将电源 IRP (IRP_MJ_POWER) 传递。

有关详细信息,请参阅 呼叫 IoCallDriver 与呼叫 PoCallDriver

要求

要求
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <= DISPATCH_LEVEL
DDI 符合性规则 CompleteRequestStatusCheck、CompletionRoutineRegistered、DeleteDevice、ForwardedAtBadIrql、ForwardedAtBadIrqlAllocate、ForwardedAtBadIrqlFsdAsync、ForwardedAtBadIrqlFsdSync、 HwStorPortProhibitedDDI (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