Freigeben über


IoReportRootDevice-Funktion (ntddk.h)

Die IoReportRootDevice Routine meldet ein Gerät, das von einem PnP-Bustreiber nicht erkannt werden kann, an den PnP-Manager. IoReportRootDevice nur ein Gerät pro Treiber erstellt werden kann.

Syntax

NTSTATUS IoReportRootDevice(
  [in] PDRIVER_OBJECT DriverObject
);

Parameter

[in] DriverObject

Zeigen Sie auf das Treiberobjekt des Treibers, der das Gerät erkannt hat.

Rückgabewert

IoReportRootDevice STATUS_SUCCESS bei Erfolg oder den entsprechenden Fehlercode beim Fehler zurück.

Bemerkungen

Treiber für Geräte, die von einem PnP-Bustreiber nicht erkannt werden können, verwenden IoReportRootDevice-, um ihr Gerät an das System zu melden. Geräte, die von einem PnP-Bustreiber erkannt werden können, sollten als Reaktion auf eine IRP_MN_QUERY_DEVICE_RELATIONS Anforderung gemeldet werden.

Ein Treiber ruft diese Routine in der Regel von der DriverEntry Routine auf.

IoReportRootDevice kennzeichnet das Gerät als aufgezähltes Stammgerät, und diese Identifikation ist für systemübergreifende Starte dauerhaft. Der PnP-Manager erkennt das Gerät in der Liste mit der Stammliste und konfiguriert es wie ein PnP-Gerät: Der PnP-Manager fragt nach Geräteinformationen ab, identifiziert die entsprechenden Treiber und ruft seine AddDevice Routinen auf und sendet alle entsprechenden PnP IRPs.

Das System generiert eine einzelne Hardware-ID-Zeichenfolge für das Gerät, des Formulars ROOT\Driver wobei Driver der Dienstname des Treibers ist. Ein Treiber kann zusätzliche Hardware-IDs oder kompatible IDs bereitstellen, indem die IRP_MN_QUERY_ID Anforderung behandelt wird.

Ein Treiberschreiber muss eine INF-Datei bereitstellen, die mit einer der angegebenen Hardware-IDs oder kompatiblen IDs übereinstimmt. Die INF-Datei sollte den ursprünglichen Treiber angeben, der IoReportRootDevice als Treiber für diese IDs geladen werden soll. Das System verwendet diese Informationen, um den Treiberstapel für das Gerät neu zu erstellen, z. B. beim Neustart. Aufrufer von IoReportRootDevice- müssen unter IRQL = PASSIVE_LEVEL im Kontext eines Systemthreads ausgeführt werden.

Treiber sollten IoReportDetectedDevice- verwenden, um Hardwaregeräte zu melden, die Ressourcen verwenden, aber nicht von einem PnP-Bustreiber erkannt werden können, anstatt IoReportRootDevice.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Windows 8 und höheren Versionen von Windows.
Zielplattform- Universal
Header- ntddk.h (include Ntddk.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- PASSIVE_LEVEL (siehe Abschnitt "Hinweise")

Siehe auch

AddDevice-

DriverEntry-

IRP_MN_QUERY_DEVICE_RELATIONS

IRP_MN_QUERY_ID

IRP_MN_START_DEVICE

IoReportDetectedDevice

IoReportResourceForDetection-