Función IoRegisterDriverReinitialization (ntddk.h)

Un controlador llama a la rutina IoRegisterDriverReinitialization durante su inicialización o reinicialización para registrar su rutina Reinitialize que se llamará de nuevo antes de que se complete la inicialización del sistema y, posiblemente, la inicialización del sistema.

Sintaxis

void IoRegisterDriverReinitialization(
  [in]           PDRIVER_OBJECT       DriverObject,
  [in]           PDRIVER_REINITIALIZE DriverReinitializationRoutine,
  [in, optional] PVOID                Context
);

Parámetros

[in] DriverObject

Puntero al objeto de controlador que se ha introducido en la rutina DriverEntry .

[in] DriverReinitializationRoutine

Puntero a la rutina Reinicializar del controlador.

[in, optional] Context

Puntero al contexto que se va a pasar a la rutina Reinitialize del controlador.

Valor devuelto

None

Observaciones

Un controlador solo puede llamar a esta rutina si su rutina DriverEntry devolverá STATUS_SUCCESS. Si la rutina Reinitialize proporcionada por el controlador debe usar el Registro, la rutina DriverEntry debe incluir una copia de la cadena a la que RegistryPath apunta como parte del contexto pasado a la rutina Reinitialize en esta llamada.

Si el controlador se carga dinámicamente, es posible que esto ocurra durante un sistema en ejecución normal, por lo que todas las referencias a la cola de reinicialización se deben sincronizar.

La entrada Count para driverReinitializationRoutine indica cuántas veces se ha llamado a esta rutina, incluida la llamada actual.

La rutina DriverEntry puede llamar a IoRegisterDriverReinitialization solo una vez. Si la rutina Reinicializar debe ejecutarse de nuevo después de que se hayan devuelto las rutinas reinicializar de los demás controladores, la rutina Reinitialize también puede llamar a IoRegisterDriverReinitialization tantas veces como se debe ejecutar la rutina Reinitialize del controlador.

Normalmente, un controlador con una rutina Reinitialize es un controlador de nivel superior que controla los dispositivos PnP y heredados. Este controlador no solo debe crear objetos de dispositivo para los dispositivos que detecta el administrador de PnP (y para los que el administrador de PnP llama a la rutina AddDevice del controlador), el controlador también debe crear objetos de dispositivo para dispositivos heredados que el administrador de PnP no detecta. Un controlador puede usar una rutina Reinicializar para crear esos objetos de dispositivo y colocar el controlador en el controlador siguiente inferior para el dispositivo subyacente.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 2000.
Plataforma de destino Universal
Encabezado ntddk.h (incluya Ntddk.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

Consulte también

DRIVER_OBJECT

IoRegisterBootDriverReinitialization