Condividi tramite


Funzione IoRegisterDriverReinitialization (ntddk.h)

La routine IoRegisterDriverReinitialization viene chiamata da un driver durante l'inizializzazione o la reinizializzazione per registrare il Reinizializzare routine da chiamare di nuovo prima che il driver e, possibilmente, venga completata l'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 reinizializzare del driver.

[in, optional] Context

Puntatore al contesto da passare alla routine reinizializzare 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 utilizzare il Registro di sistema, la routine DriverEntry deve includere una copia della stringa in cui RegistryPath punta come parte del contesto passato alla routine Reinizializzare in questa chiamata.

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

Il Count input per un DriverReinitializationRoutine indica quante volte è stata chiamata questa routine, inclusa la chiamata corrente.

La routine DriverEntry può chiamare IoRegisterDriverReinitialization una sola volta. Se la routine Reinizializzare deve essere eseguita di nuovo dopo che qualsiasi altro driver reinizializzare routine ha restituito il controllo, la routine Reinitialize può anche chiamare IoRegisterDriverReinitialization quante volte deve essere eseguita la routine reinizializzare driver.

In genere, un driver con un reinizializzare routine è un driver di livello superiore che controlla sia i dispositivi PnP che i dispositivi legacy. Un driver di questo tipo non deve solo creare oggetti dispositivo per i dispositivi rilevati dal gestore PnP (e per cui il manager PnP chiama la routine addDevice addDevice), il driver deve anche creare oggetti dispositivo per i dispositivi legacy che il manager PnP non rileva. Un driver può usare una routine Reinizializzare per creare gli oggetti dispositivo e il driver sul driver inferiore successivo per il dispositivo sottostante.

Fabbisogno

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 HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

Vedere anche

DRIVER_OBJECT

IoRegisterBootDriverReinitialization