Função IoRegisterDriverReinitialization (ntddk.h)
A rotina de IoRegisterDriverReinitialization é chamada por um driver durante sua inicialização ou reinicialização para registrar sua rotina Reinicializar 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 driver que foi inserido na rotina DriverEntry.
[in] DriverReinitializationRoutine
Ponteiro para a rotina de Reinicializar do driver.
[in, optional] Context
Ponteiro para o contexto a ser passado para a rotina de Reinitializar do driver.
Valor de retorno
Nenhum
Observações
Um driver só poderá chamar essa rotina se sua rotina DriverEntry retornar STATUS_SUCCESS. Se a rotina de Reinicializar fornecida pelo driver precisar usar o registro, a rotina DriverEntry deverá incluir uma cópia da cadeia de caracteres para a qual RegistryPath pontos como parte do contexto passado para a rotina Reinicializar nesta chamada.
Se o driver for carregado dinamicamente, é possível que isso ocorra durante um sistema em execução normalmente, portanto, todas as referências à fila de reinicialização devem ser sincronizadas.
A contagem de entrada 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 de reinicializar de outros pilotos retornarem o controle, a rotina de reinicializar de também poderá chamar IoRegisterDriverReinitialization quantas vezes a rotina de reinitializar do driver deve ser executada.
Normalmente, um driver com uma rotina Reinicializar é um driver de nível superior que controla 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 |
---|---|
de cliente com suporte mínimo | Disponível a partir do Windows 2000. |
da Plataforma de Destino | Universal |
cabeçalho | ntddk.h (inclua Ntddk.h) |
biblioteca | NtosKrnl.lib |
de DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
regras de conformidade de DDI | HwStorPortProhibitedDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |