Abrufen von Gerätebeziehungen

In Windows Vista und höheren Versionen von Windows enthält das einheitliche Geräteeigenschaftenmodell Gerätebeziehungseigenschaften. Das einheitliche Geräteeigenschaftenmodell verwendet Eigenschaftenschlüssel , um diese Eigenschaften darzustellen. Die Liste der Beziehungen, die im einheitlichen Geräteeigenschaftenmodell dargestellt werden, sind:

Windows Server 2003, Windows XP und Windows 2000 unterstützen die Eigenschaftenschlüssel des einheitlichen Eigenschaftenmodells nicht. Sie können die entsprechenden Informationen jedoch abrufen, indem Sie Plug & Play Konfigurations-Manager-Funktionen (PnP) aufrufen. Um die Kompatibilität mit früheren Windows-Versionen zu gewährleisten, unterstützen Windows Vista und höhere Versionen auch das Aufrufen von PnP-Konfigurations-Manager-Funktionen zum Abrufen von Gerätebeziehungseigenschaften. Sie sollten jedoch die Eigenschaftenschlüssel des einheitlichen Geräteeigenschaftenmodells verwenden, um auf die Gerätebeziehungseigenschaften zuzugreifen. Informationen zur Verwendung von Eigenschaftenschlüsseln für den Zugriff auf Gerätetreibereigenschaften finden Sie unter Zugreifen auf Geräteinstanzeigenschaften (Windows Vista und höher).

Informationen zum Zugreifen auf die Eigenschaften von Gerätebeziehungen unter Windows Server 2003, Windows XP und Windows 2000 finden Sie in den folgenden Themen:

Abrufen von Auswurfbeziehungen, Entfernungs- und Machtbeziehungen und Busbeziehungen

Abrufen des übergeordneten Elements einer Geräteinstanz

Abrufen der untergeordneten Elemente einer Geräteinstanz

Abrufen der gleichgeordneten Elemente einer Geräteinstanz

Abrufen von Auswurfbeziehungen, Entfernungs- und Machtbeziehungen und Busbeziehungen

Um Informationen zu Gerätebeziehungen unter Windows Server 2003, Windows XP und Windows 2000 abzurufen, rufen Sie CM_Get_Device_ID_List auf, und geben Sie die folgenden Parameterwerte an:

  • Legen Sie pszFilter auf einen Zeiger auf eine NULL-beendete Zeichenfolge fest, die das Gerät instance Bezeichner angibt, für den Beziehungsinformationen abgerufen werden sollen.

  • Legen Sie Puffer auf einen Zeiger auf einen Puffer fest, der eine Liste von NULL-beendeten Geräte instance bezeichnern empfängt. Die Liste wird durch ein zusätzliches NULL-Zeichen beendet. Sie können die erforderliche Puffergröße abrufen, indem Sie die funktion CM_Get_Device_ID_List_Size aufrufen.

  • Legen Sie BufferLen auf die Größe des Pufferpuffers in Zeichen fest.

  • Legen Sie ulFlags auf eines der folgenden Flags fest, um die entsprechenden Beziehungsinformationen abzurufen:

Wenn der Aufruf von CM_Get_Device_ID_List erfolgreich ist, ruft CM_Get_Device_ID_List die angeforderten Beziehungsinformationen ab und gibt CR_SUCCESS zurück. Andernfalls gibt CM_Get_Device_ID_List einen der Fehlercodes mit dem Präfix "CR_" zurück, die in Cfgmgr32.h definiert sind.

Abrufen des übergeordneten Elements einer Geräteinstanz

Führen Sie die folgenden Schritte aus, um den Gerätebezeichner instance eines übergeordneten Geräts unter Windows Server 2003, Windows XP und Windows 2000 abzurufen:

  1. Rufen Sie die CM_Get_Parent-Funktion auf, um ein Gerät instance Handle für das übergeordnete Gerät eines Gerätes instance abzurufen.

  2. Rufen Sie CM_Get_Device_ID auf, um das Gerät instance Bezeichner abzurufen, der dem Gerät zugeordnet ist, instance dem übergeordneten Gerät zugeordnet ist, das durch den vorherigen Aufruf von CM_Get_Parent abgerufen wurde.

Diese Informationen, die mithilfe dieser Prozedur abgerufen werden, sind identisch mit denen, die durch die DEVPKEY_Device_Parent-Eigenschaft im einheitlichen Geräteeigenschaftenmodell von Windows Vista und höheren Versionen dargestellt werden.

Abrufen der untergeordneten Elemente einer Geräteinstanz

Führen Sie die folgenden Schritte aus, um die Gerätebezeichner instance der untergeordneten Geräte eines Geräts abzurufen, das unter Windows Server 2003, Windows XP und Windows 2000 instance:

  1. Rufen Sie die CM_Get_Child-Funktion auf, um ein Gerät abzurufen, instance dem ersten untergeordneten Gerät zugeordnet ist, das einem Geräte instance zugeordnet ist.

  2. Rufen Sie CM_Get_Sibling so oft auf, wie es erforderlich ist, alle gleichgeordneten Geräte des ersten untergeordneten Geräts aufzulisten, das durch den Aufruf von CM_Get_Child abgerufen wurde.

  3. Rufen Sie CM_Get_Device_ID auf, um das Gerät instance-Bezeichner abzurufen, die dem Gerät instance Handles zugeordnet sind, die von den Aufrufen von CM_Get_Child und CM_Get_Sibling zurückgegeben wurden.

Diese Mit diesem Verfahren abgerufenen Informationen sind identisch mit denen, die durch die DEVPKEY_Device_Children-Eigenschaft im einheitlichen Geräteeigenschaftenmodell von Windows Vista und höheren Versionen dargestellt werden.

Abrufen der gleichgeordneten Elemente einer Geräteinstanz

Führen Sie die folgenden Schritte aus, um die Gerätebezeichner instance der untergeordneten Geräte von Gerät instance Abc unter Windows Server 2003, Windows XP und Windows 2000 abzurufen:

  1. Rufen Sie die CM_Get_Parent-Funktion auf, um ein Gerät abzurufen, instance mit dem übergeordneten Gerät des Geräts instance Abc behandelt wird.

  2. Rufen Sie die CM_Get_Child-Funktion auf, um ein Gerät abzurufen, instance mit dem ersten untergeordneten Gerät des übergeordneten Geräts des Geräts instance Abc behandelt wird.

  3. Rufen Sie CM_Get_Sibling so oft auf, wie es erforderlich ist, um alle gleichgeordneten Geräte des ersten untergeordneten Geräts des übergeordneten Geräts aufzulisten. Diese Enumeration gibt auch ein Handle an das Gerät instance Abc zurück.

  4. Rufen Sie CM_Get_Device_ID auf, um das Gerät instance Bezeichner abzurufen, die dem Gerät instance Handles zugeordnet sind, die von den vorherigen Aufrufen CM_Get_Sibling zurückgegeben wurden. Entfernen Sie das Handle to Device instance Abc aus der Liste der gleichgeordneten Geräte des ersten untergeordneten Geräts des übergeordneten Geräts.

Die mit diesem Verfahren abgerufenen Informationen sind identisch mit denen, die durch die DEVPKEY_Device_Siblings-Eigenschaft im einheitlichen Geräteeigenschaftenmodell von Windows Vista und höheren Versionen dargestellt werden. Wenn ein in diesem Abschnitt aufgeführter CM_Xxx-Funktionsaufruf erfolgreich ist, ruft die CM_Xxx-Funktion die angeforderten Informationen ab und gibt CR_SUCCESS zurück. Andernfalls gibt die CM_Xxx-Funktion einen der Fehlercodes mit dem Präfix "CR_" zurück, die in Cfgmgr32.h definiert sind.