Funzione IoRegisterDriverReinitialization (ntddk.h)

La routine IoRegisterDriverReinitialization viene chiamata da un driver durante l'inizializzazione o la reinizializzazione per registrare la routine Reinitialize da chiamare prima del completamento dell'inizializzazione del driver e, eventualmente, dell'inizializzazione del sistema.

Sintassi

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

Parametri

[in] DriverObject

Puntatore all'oggetto driver immesso nella routine DriverEntry .

[in] DriverReinitializationRoutine

Puntatore alla routine Reinitialize del driver.

[in, optional] Context

Puntatore al contesto da passare alla routine Reinitialize del driver.

Valore restituito

nessuno

Osservazioni

Un driver può chiamare questa routine solo se la routine DriverEntry restituirà STATUS_SUCCESS. Se la routine Reinitialize fornita dal driver deve usare il Registro di sistema, la routine DriverEntry deve includere una copia della stringa in cui RegistryPath punta come parte del contesto passato alla routine Reinitialize in questa chiamata.

Se il driver viene caricato in modo dinamico, è possibile che questo si verifichi durante un sistema normalmente in esecuzione, quindi tutti i riferimenti alla coda di reinizializzazione devono essere sincronizzati.

L'input Count di un driverReinitializationRoutine indica quante volte questa routine è stata chiamata, inclusa la chiamata corrente.

La routine DriverEntry può chiamare IoRegisterDriverReinitialization una sola volta. Se la routine Reinitialize deve essere eseguita nuovamente dopo la reinizializzazione di qualsiasi altra routine del driver, la routine Reinitialize può anche chiamare IoRegisterDriverReinitialization quante volte deve essere eseguita la routine reinizializzazione del driver.

In genere, un driver con una routine Reinitialize è un driver di livello superiore che controlla sia i dispositivi PnP che legacy. Tale driver non deve solo creare oggetti dispositivo per i dispositivi rilevati dal gestore PnP (e per cui il gestore PnP chiama la routine AddDevice del driver), il driver deve anche creare oggetti dispositivo per i dispositivi legacy che il gestore PnP non rileva. Un driver può usare una routine Reinitialize per creare tali oggetti dispositivo e eseguire il livello del driver sul driver inferiore successivo per il dispositivo sottostante.

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire da Windows 2000.
Piattaforma di destinazione Universale
Intestazione ntddk.h (include Ntddk.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regole di conformità DDI HwStorPortProhibitedDDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

Vedi anche

DRIVER_OBJECT

IoRegisterBootDriverReinitialization