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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk