Condividi tramite


Funzione IoReportRootDevice (ntddk.h)

La routine IoReportRootDevice segnala un dispositivo che non può essere rilevato da un driver del bus PnP a PnP Manager. IoReportRootDevice consente di creare un solo dispositivo per ogni driver.

Sintassi

NTSTATUS IoReportRootDevice(
  [in] PDRIVER_OBJECT DriverObject
);

Parametri

[in] DriverObject

Puntatore all'oggetto driver del driver che ha rilevato il dispositivo.

Valore restituito

IoReportRootDevice restituisce STATUS_SUCCESS in caso di esito positivo o il codice di errore appropriato in caso di errore.

Commenti

I driver per i dispositivi che non possono essere rilevati da un driver del bus PnP usano IoReportRootDevice per segnalare il dispositivo al sistema. I dispositivi che possono essere rilevati da un driver del bus PnP devono essere segnalati in risposta a una richiesta di IRP_MN_QUERY_DEVICE_RELATIONS .

Un driver chiama in genere questa routine dalla routine DriverEntry .

IoReportRootDevice contrassegna il dispositivo come dispositivo enumerato radice e questa identificazione è persistente tra gli avvio del sistema. Il gestore PnP "rileva" il dispositivo nell'elenco enumerato radice e lo configura come un dispositivo PnP: il gestore PnP esegue una query per le informazioni sul dispositivo, identifica i driver appropriati e chiama le routine AddDevice e invia tutti i PnP IRP appropriati.

Il sistema genera una singola stringa ID hardware per il dispositivo, nel formato ROOT\Driver in cui Driver è il nome del servizio del driver. Un driver può fornire ID hardware aggiuntivi o ID compatibili gestendo la richiesta di IRP_MN_QUERY_ID .

Un writer di driver deve fornire un file INF che corrisponda a uno qualsiasi degli ID hardware specificati o ID compatibili. Il file INF deve specificare il driver originale che ha chiamato IoReportRootDevice come driver da caricare per tali ID. Il sistema usa queste informazioni per ricompilare lo stack di driver per il dispositivo, ad esempio al riavvio. I chiamanti di IoReportRootDevice devono essere in esecuzione in IRQL = PASSIVE_LEVEL nel contesto di un thread di sistema.

I driver devono usare IoReportDetectedDevice per segnalare i dispositivi hardware che usano risorse, ma non possono essere rilevati da un driver del bus PnP anziché da IoReportRootDevice.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows 8 e versioni successive di Windows.
Piattaforma di destinazione Universale
Intestazione ntddk.h (include Ntddk.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (vedere la sezione Osservazioni)

Vedi anche

AddDevice

DriverEntry

IRP_MN_QUERY_DEVICE_RELATIONS

IRP_MN_QUERY_ID

IRP_MN_START_DEVICE

IoReportDetectedDevice

IoReportResourceForDetection