Função IoRegisterDriverReinitialization (ntddk.h)
A rotina IoRegisterDriverReinitialization é chamada por um driver durante sua inicialização ou reinicialização para registrar sua rotina de Reinicialização a ser chamada novamente antes que a inicialização do driver e, possivelmente do sistema, seja concluída.
Sintaxe
void IoRegisterDriverReinitialization(
[in] PDRIVER_OBJECT DriverObject,
[in] PDRIVER_REINITIALIZE DriverReinitializationRoutine,
[in, optional] PVOID Context
);
Parâmetros
[in] DriverObject
Ponteiro para o objeto de driver que foi inserido para a rotina DriverEntry .
[in] DriverReinitializationRoutine
Ponteiro para a rotina Reinicializar do driver.
[in, optional] Context
Ponteiro para o contexto a ser passado para a rotina Reinicializar do driver.
Retornar valor
Nenhum
Comentários
Um driver só poderá chamar essa rotina se sua rotina DriverEntry retornar STATUS_SUCCESS. Se a rotina Reinicializar fornecida pelo driver precisar usar o Registro, a rotina DriverEntry deverá incluir uma cópia da cadeia de caracteres para a qual RegistryPath aponta como parte do contexto passado para a rotina Reinicializar nessa chamada.
Se o driver for carregado dinamicamente, é possível que isso ocorra durante um sistema normalmente em execução, portanto, todas as referências à fila de reinicialização devem ser sincronizadas.
A entrada Count para um DriverReinitializationRoutine indica quantas vezes essa rotina foi chamada, incluindo a chamada atual.
A rotina DriverEntry pode chamar IoRegisterDriverReinitialization apenas uma vez. Se a rotina Reinicializar deve ser executada novamente depois que as rotinas Reinicializar de outros drivers retornarem o controle, a rotina Reinicializar também poderá chamar IoRegisterDriverReinitialization quantas vezes a rotina Reinicializar do driver deve ser executada.
Normalmente, um driver com uma rotina Reinicializar é um driver de nível superior que controla os dispositivos PnP e herdados. Esse driver não deve apenas criar objetos de dispositivo para os dispositivos que o gerenciador PnP detecta (e para os quais o gerenciador PnP chama a rotina AddDevice do driver), o driver também deve criar objetos de dispositivo para dispositivos herdados que o gerenciador PnP não detecta. Um driver pode usar uma rotina Reinicializar para criar esses objetos de dispositivo e colocar o driver em camadas sobre o driver inferior seguinte para o dispositivo subjacente.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível a partir do Windows 2000. |
Plataforma de Destino | Universal |
Cabeçalho | ntddk.h (inclua Ntddk.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Regras de conformidade da DDI | HwStorPortProhibitedDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |