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 入力パラメーターを割り当てます。

IoCallDriver への呼び出しで渡された IRP は、上位レベルのドライバーが IRP の IoCompletion ルーチンを設定するために IoSetCompletionRoutine を呼び出していない限り、上位レベルのドライバーにアクセスできなくなります。 存在する場合、IoCompletion ルーチンへの IRP 入力には、下位ドライバーによって設定された I/O 状態ブロックがあり、下位レベルのすべてのドライバーの I/O スタックの場所は 0 で埋められます。

Windows Server 2003、Windows XP、および Windows 2000 用のドライバーは、電源 IRP (IRP_MJ_POWER) を渡すために IoCallDriver ではなく PoCallDriver を使用する必要があります。

詳細については、「 IoCallDriver の呼び出しと PoCallDriver の呼び出し」を参照してください。

要件

要件
Header 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、 HwStorPortProhibitedDDIs(storport)、IoAllocateForward、IoAllocateIrpSignalEventInCompletionTimeout、IoBuildDeviceControlWait、IoBuildDeviceControlWaitTimeout、IoBuildFsdForward、IoBuildSynchronousFsdRequestWaitWait、IoBuildSynchronousFsdRequestWaitTimeout、IoSetCompletionRoutineCheckCheck、IrpProcessingComplete、LowerDriverReturn、MarkDevicePower、MarkingQueuedIrps、MarkIrpPending、MarkIrpPending2、 MarkPower(wdm)MarkPowerDown(wdm)MarkQueryRelations(wdm)MarkStartDevice(wdm)、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