Partilhar via


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)

Consulte também

DRIVER_OBJECT

IoRegisterBootDriverReinitialization