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) |