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\Driver où Driver 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) |