Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Envía un IRP al controlador asociado a un objeto de dispositivo especificado.
Sintaxis
NTSTATUS IofCallDriver(
PDEVICE_OBJECT DeviceObject,
__drv_aliasesMem PIRP Irp
);
Parámetros
DeviceObject
Puntero a un objeto de dispositivo, que representa el dispositivo de destino para la operación de E/S solicitada.
Irp
Puntero alIRP de.
Valor devuelto
Devuelve un valor NTSTATUS adecuado .
Observaciones
Antes de llamar a IoCallDriver, el controlador de llamada debe configurar la ubicación de la pila de E/S en irP para el controlador de destino. Para obtener más información, vea pasar IRP hacia abajo en la pila de controladores.
IoCallDriver asigna el parámetro de entrada DeviceObject al miembro DeviceObject de la estructura de IO_STACK_LOCATION para el controlador al que se llama.
Un IRP pasado en una llamada a IoCallDriver deja de estar accesible para el controlador de nivel superior, a menos que el controlador de nivel superior haya llamado a IoSetCompletionRoutine para configurar una rutina de ioCompletion para irP. Si lo tiene, la entrada IRP a la rutina de IoCompletion tiene su bloque de estado de E/S establecido por los controladores inferiores y todas las ubicaciones de pila de E/S de los controladores de nivel inferior se rellenan con ceros.
Los controladores para Windows Server 2003, Windows XP y Windows 2000 deben usar PoCallDriver en lugar de IoCallDriver para pasar IRP de energía (IRP_MJ_POWER).
Para obtener más información, consulte Llamar a IoCallDriver frente a Llamar a PoCallDriver.
Requisitos
| Requisito | Valor |
|---|---|
| encabezado de | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
| biblioteca de | NtosKrnl.lib |
| DLL de | NtosKrnl.exe |
| irQL | IRQL <= DISPATCH_LEVEL |
| reglas de cumplimiento de DDI | CompleteRequestStatusCheck, CompletionRoutineRegistered, DeleteDevice, ForwardedAtBadIrql, ForwardedAtBadIrqlAllocate, ForwardedAtBadIrqlFsdAsync, ForwardedAtBadIrqlFsdSync, HwStorPortProhibitedDIs(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 |