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 retournée

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

Remarques

Les pilotes des 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 racine et cette identification est persistante entre les démarrages système. Le gestionnaire PnP « détecte » l’appareil dans la liste 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 routines AddDevice et envoie tous les IIP 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 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 comme pilote à charger pour ces ID. Le système utilise ces informations pour reconstruire la pile de pilotes de l’appareil, par exemple au redémarrage. Les appelants d’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 qui ne peuvent pas être détectés par un pilote de bus PnP au lieu d’IoReportRootDevice.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows 8 et versions ultérieures de Windows.
Plateforme cible Universal
En-tête ntddk.h (inclure 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