Freigeben über


Generieren von Container-IDs aus Wechseldatenträgerfunktionen

Wenn ein Bustreiber keine Container-ID für einen Aufzählungsknoten (devnode) bereitstellen kann, verwendet der Plug & Play-Manager (PnP) die Wechselgerätefunktion, um eine Container-ID für alle devnodes zu generieren, die für das Gerät aufgelistet sind. Weitere Informationen zur Wechselmedienfunktion finden Sie unter Übersicht über die Wechselgerätefunktion.

In der folgenden Heuristik wird beschrieben, wie Container-IDs aus der Wechselmedienfunktion generiert werden:

  1. Wenn für den Devnode die Wechselmedienfunktion auf TRUE festgelegt ist, generieren Sie eine neue Container-ID für den Devnode.

  2. Wenn für den Devnode die Wechselmedienfunktion auf FALSE festgelegt ist, erben Sie die Container-ID von ihrem übergeordneten Devnode.

Ein Devnode kann untergeordnete Devnodes erst aufzählen, wenn er initialisiert und sein Treiberstapel gestartet wird. Sobald die Container-ID während der Initialisierung zugewiesen wird, ist der Devnode bereit, seine Container-ID an alle nicht entfernbaren untergeordneten Elemente weiterzuverbreiten, während diese aufgelistet werden.

Ein Devnode, bei dem die Wechselmedienfunktion auf TRUE festgelegt ist, gilt als oberster (übergeordneter) Devnode für das Gerät, und für diesen Devnode wird eine Container-ID generiert.

Alle untergeordneten Elemente dieses übergeordneten Devnodes erben dieselbe Container-ID, es sei denn, sie selbst haben ihre Wechselgerätefunktion auf TRUE festgelegt. In diesem Fall wird einem wechselbaren untergeordneten Devnode eine andere Container-ID zugewiesen und wird zum übergeordneten Devnode dieses Wechselmediums. Alle untergeordneten Elemente dieses Devnodes erben dieselbe Container-ID.

Angenommen, eine Maus mit nur einer Funktion ist über USB mit dem Computer verbunden. In diesem Fall erkennt der USB-Bustreiber ein neues Gerät und erkennt, dass es sich um ein USB Human Interface Device (HID) handelt. Der USB-Bustreiber erstellt dann einen USB HID-Entwicklungsknoten für das Gerät. Der HID-Devnode erkennt auch, dass es sich bei dem HID-Gerät um eine Maus handelt, und erstellt einen untergeordneten Devnode für eine HID-kompatible Maus.

Das Anwenden dieser Heuristik auf dieses Beispiel führt zu den folgenden Aktionen:

  1. Der USB HID-Devnode wird erstellt. Die Wechselgerätefunktion ist auf diesem Devnode auf TRUE festgelegt, da der übergeordnete USB-Hub-Devnode erkannt hat, dass er an einen externen USB-Anschluss angeschlossen war.

  2. Für diesen Devnode wird eine Container-ID erstellt, da es sich um den obersten Devnode eines Wechselmediums handelt. Daher wird dieser Devnode als übergeordneter Devnode für das Wechselmedium betrachtet.

  3. Der HID-kompatible Mausentwicklungsknoten wird erstellt. Die Wechselmedienfunktion ist für diesen Devnode auf FALSE festgelegt, da der übergeordnete USB HID-Devnode alle untergeordneten Elemente als nicht versetzbar meldet. In diesem Fall erbt der HID-kompatible Mausentwicklungsknoten die Container-ID des übergeordneten Devnodes.

Durch diese Heuristik wird jedem Devnode, der zur Maus gehört, dieselbe Container-ID zugewiesen. Der PnP-Manager gruppierte die Devnodes erfolgreich in einem logischen Gerät, auch wenn kein eindeutiger Bezeichner für das Gerät vorhanden ist.

Hinweis

Der Erfolg dieser Heuristik basiert auf einem bestimmten Bustreiber, der die Wechselgerätefunktion für jeden Devnode, den er aufzählt, ordnungsgemäß meldet. Der Bustreiber muss sicherstellen, dass der übergeordnete Devnode des Geräts als entfernbar festgelegt und die untergeordneten Devnodes nicht als entfernbar festgelegt werden sollten.