Partager via


Fonction IoReportRootDevice (ntddk.h)

La routine IoReportRootDevice signale un appareil qui ne peut pas être détecté par un pilote de bus PnP au Gestionnaire PnP. IoReportRootDevice autorise la création d’un seul appareil par pilote.

Syntaxe

NTSTATUS IoReportRootDevice(
  [in] PDRIVER_OBJECT DriverObject
);

Paramètres

[in] DriverObject

Pointeur vers l’objet pilote du pilote qui a détecté l’appareil.

Valeur de retour

IoReportRootDevice retourne STATUS_SUCCESS en cas de réussite ou le code d’erreur approprié en cas d’échec.

Remarques

Les pilotes pour les appareils qui ne peuvent pas être détectés par un pilote de bus PnP utilisent IoReportRootDevice pour signaler leur appareil au système. Les appareils qui peuvent être détectés par un pilote de bus PnP doivent être signalés en réponse à une demande de IRP_MN_QUERY_DEVICE_RELATIONS.

Un pilote appelle généralement cette routine à partir de sa routine DriverEntry.

IoReportRootDevice marque l’appareil comme un appareil énuméré par la racine et cette identification est persistante entre les démarrages système. Le gestionnaire PnP « détecte » l’appareil dans la liste énumérée racine et le configure comme un appareil PnP : le gestionnaire PnP interroge les informations sur l’appareil, identifie les pilotes appropriés et appelle leurs AddDevice routines, puis envoie tous les irps PnP appropriés.

Le système génère une seule chaîne d’ID matériel pour l’appareil, sous la forme ROOT\DriverDriver est le nom du service du pilote. Un pilote peut fournir des ID matériels supplémentaires ou des ID compatibles en gérant la demande de IRP_MN_QUERY_ID.

Un enregistreur de pilotes doit fournir un fichier INF qui correspond à l’un des ID matériels spécifiés ou aux ID compatibles. Le fichier INF doit spécifier le pilote d’origine qui a appelé IoReportRootDevice en tant que pilote à charger pour ces ID. Le système utilise ces informations pour reconstruire la pile des pilotes pour l’appareil, par exemple lors du redémarrage. Les appelants de IoReportRootDevice doivent s’exécuter à IRQL = PASSIVE_LEVEL dans le contexte d’un thread système.

Les pilotes doivent utiliser IoReportDetectedDevice pour signaler les périphériques matériels qui utilisent des ressources, mais ne peuvent pas être détectés par un pilote de bus PnP au lieu d'IoReportRootDevice.

Exigences

Exigence Valeur
client minimum pris en charge Disponible dans Windows 8 et versions ultérieures de Windows.
plateforme cible Universel
d’en-tête ntddk.h (include Ntddk.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (voir la section Remarques)

Voir aussi

AddDevice

DriverEntry

IRP_MN_QUERY_DEVICE_RELATIONS

IRP_MN_QUERY_ID

IRP_MN_START_DEVICE

IoReportDetectedDevice

IoReportResourceForDetection