Funzione IofCallDriver (wdm.h)
Attenzione
Chiama invece IoCallDriver .
Invia un IRP al driver associato a un oggetto dispositivo specificato.
Sintassi
NTSTATUS IofCallDriver(
PDEVICE_OBJECT DeviceObject,
__drv_aliasesMem PIRP Irp
);
Parametri
DeviceObject
Puntatore a un oggetto dispositivo, che rappresenta il dispositivo di destinazione per l'operazione di I/O richiesta.
Irp
Puntatore all'IRP.
Valore restituito
Restituisce un valore NTSTATUS appropriato.
Commenti
Prima di chiamare IoCallDriver, il driver chiamante deve configurare la posizione dello stack di I/O in IRP per il driver di destinazione. Per altre informazioni, vedere Passaggio dei runtime di integrazione verso il basso nello stack di driver.
IoCallDriver assegna il parametro di input DeviceObject al membro DeviceObject della struttura IO_STACK_LOCATION per il driver chiamato.
Un IRP passato in una chiamata a IoCallDriver diventa inaccessibile al driver di livello superiore, a meno che il driver di livello superiore non abbia chiamato IoSetCompletionRoutine per configurare una routine IoCompletion per IRP. In caso affermativo, l'input IRP nella routine IoCompletion ha il blocco di stato I/O impostato dai driver inferiori e tutte le posizioni dello stack di I/O dei driver di livello inferiore vengono riempite con zeri.
I driver per Windows Server 2003, Windows XP e Windows 2000 devono usare PoCallDriver anziché IoCallDriver per passare i runtime di integrazione di alimentazione (IRP_MJ_POWER).
Per altre informazioni, vedere Chiamata di IoCallDriver e Chiamata di PoCallDriver.
Requisiti
Requisito | Valore |
---|---|
Intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | IRQL <= DISPATCH_LEVEL |
Regole di conformità DDI | CompleteRequestStatusCheck, CompletionRoutineRegistered, DeleteDevice, ForwardedAtBadIrql, ForwardedAtBadIrqlAllocate, ForwardedAtBadIrqlFsdAsync, ForwardedAtBadIrqlFsdSync, HwStorPortProhibitedDDDIs(storport), IoAllocateForward, IoAllocateIrpSignalEventInCompletionTimeout, IoBuildDeviceControlWait, IoBuildDeviceControlWaitTimeout, IoBuildFsdForward, IoBuildSynchronousFsdRequestWait, IoBuildSynchronousFsdRequestWaitTimeout, 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 |