Bagikan melalui


Fungsi IofCallDriver (wdm.h)

Perhatian

Panggil IoCallDriver sebagai gantinya.

Mengirim IRP ke driver yang terkait dengan objek perangkat tertentu.

Sintaks

NTSTATUS IofCallDriver(
  PDEVICE_OBJECT        DeviceObject,
  __drv_aliasesMem PIRP Irp
);

Parameter

DeviceObject

Penunjuk ke objek perangkat, mewakili perangkat target untuk operasi I/O yang diminta.

Irp

Arahkan ke IRP.

Menampilkan nilai

Mengembalikan nilai NTSTATUS yang sesuai.

Keterangan

Sebelum memanggil IoCallDriver, driver panggilan harus menyiapkan lokasi tumpukan I/O di IRP untuk driver target. Untuk informasi selengkapnya, lihat Meneruskan IRP Ke Bawah Tumpukan Driver.

IoCallDriver menetapkan parameter input DeviceObject ke anggota DeviceObject dari struktur IO_STACK_LOCATION untuk driver yang dipanggil.

IRP yang diteruskan dalam panggilan ke IoCallDriver menjadi tidak dapat diakses oleh driver tingkat yang lebih tinggi, kecuali driver tingkat yang lebih tinggi telah memanggil IoSetCompletionRoutine untuk menyiapkan rutinitas IoCompletion untuk IRP. Jika sudah, input IRP ke rutinitas IoCompletion memiliki blok status I/O yang ditetapkan oleh driver yang lebih rendah, dan semua lokasi tumpukan I/O driver tingkat bawah diisi dengan nol.

Driver untuk Windows Server 2003, Windows XP, dan Windows 2000 harus menggunakan PoCallDriver daripada IoCallDriver untuk melewati runtime integrasi daya (IRP_MJ_POWER).

Untuk informasi selengkapnya, lihat Memanggil IoCallDriver vs. Memanggil PoCallDriver.

Persyaratan

Persyaratan Nilai
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <= DISPATCH_LEVEL
Aturan kepatuhan DDI CompleteRequestStatusCheck, CompletionRoutineRegistered, DeleteDevice, ForwardedAtBadIrql, ForwardedAtBadIrqlAllocate, ForwardedAtBadIrqlFsdAsync, ForwardedAtBadIrqlFsdSync, HwStorPortProhibitedDDIs(storport), IoAllocateForward, IoAllocateIrpSignalEventInCompletionTimeout, IoBuildDeviceControlWait, IoBuildDeviceControlWaitTimeout, IoBuildFsdForward, IoBuildSynchronousFsdRequestWait, IoBuildSynchronousFsdRewardquestWaitTimeout, IoSetCompletionRoutineExCheck, IrpProcessingComplete, LowerDriverReturn, MarkDevicePower, MarkingQueuedIrps, 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

Lihat juga

IoAllocateIrp

IoBuildAsynchronousFsdRequest

IoBuildDeviceIoControlRequest

IoBuildSynchronousFsdRequest

IoSetCompletionRoutine

PoCallDriver