共用方式為


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 成員。

除非較高層級的驅動程式已呼叫 IoSetCompletionRoutine ,否則傳入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)
程式庫 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