Freigeben über


NT-Gerätenamen

Ein benanntes Geräteobjekt hat den Namen \Device\DeviceName. Dies wird als NT-Gerätename des Geräteobjekts bezeichnet.

Gerätenamen für WDM-Treiber

WDM-Treiber benennen ihre Geräteobjekte nicht direkt. Stattdessen erzwingt das System ein einheitliches Benennungsschema, das sicherstellt, dass Gerätenamen keine Konflikte zwischen Treibern verursachen. Das Benennungsschema für WDM-Treiber lautet wie folgt.

  • Die PDO für ein Gerät ist benannt. Der Bustreiber fordert benannte PDOs für die Geräte an, die er aufzählt. Der Bustreiber gibt die FILE_AUTOGENERATED_DEVICE_NAME Geräteeigenschaft an, wenn er das Geräteobjekt erstellt. Weitere Informationen finden Sie unter Angeben von Gerätemerkmalen. Das System generiert dann automatisch den Gerätenamen.

  • FDOs und Filter-DOs werden nicht benannt. Funktions- und Filtertreiber fordern beim Erstellen des Geräteobjekts keinen Namen an.

Jede E/A-Anforderung an ein benanntes Geräteobjekt wird automatisch an das oberste Objekt im Stapel des Geräteobjekts übertragen. Daher muss nur das p.U. benannt werden. Benutzermodusanwendungen beziehen sich nicht auf WDM-Geräteobjekte nach Namen. Stattdessen greifen Anwendungen über die Geräteschnittstelle auf das Geräteobjekt zu. Weitere Informationen finden Sie unter Geräteschnittstellenklassen.

Treiberschreiber dürfen nicht mehr als ein Objekt in einem Gerätestapel benennen. Das Betriebssystem überprüft die Sicherheitseinstellungen basierend auf dem benannten Objekt. Wenn zwei verschiedene Objekte benannt sind und unterschiedliche Sicherheitsbeschreibungen aufweisen, können die E/A-Anforderungen, die mit dem schwächeren Sicherheitsdeskriptor an das Objekt gesendet werden, das Geräteobjekt mit dem stärkeren Sicherheitsdeskriptor erreichen.

Gerätenamen für Nicht-WDM-Treiber

Ein Nicht-WDM-Treiber muss explizit einen Namen für benannte Geräteobjekte angeben. Der Treiber muss mindestens ein benanntes Geräteobjekt im Objektverzeichnis \Device erstellen, um E/A-Anforderungen zu empfangen. Der Treiber gibt beim Erstellen des Geräteobjekts den Gerätenamen als DeviceName-Parameter für IoCreateDeviceSecure an.