Udostępnij przez


Pobieranie relacji urządzeń

W systemie Windows Vista i nowszych wersjach systemu Windows ujednolicony model właściwości urządzenia zawiera właściwości relacji urządzeń. Ujednolicony model właściwości urządzenia używa kluczy właściwości do reprezentowania tych właściwości. Lista relacji reprezentowanych w modelu ujednoliconej właściwości urządzenia to:

Systemy Windows Server 2003, Windows XP i Windows 2000 nie obsługują kluczy właściwości ujednoliconego modelu właściwości. Można jednak pobrać odpowiednie informacje, wywołując funkcje menedżera konfiguracji Plug and Play (PnP). Aby zachować zgodność z wcześniejszymi wersjami systemu Windows, system Windows Vista i nowsze wersje obsługują również wywoływanie funkcji menedżera konfiguracji PnP w celu pobrania właściwości relacji urządzeń. Należy jednak użyć kluczy właściwości z ujednoliconego modelu właściwości urządzeń, aby uzyskać dostęp do właściwości relacji urządzeń. Aby uzyskać informacje o tym, jak używać kluczy właściwości do uzyskiwania dostępu do właściwości sterowników urządzeń, zobacz Uzyskiwanie dostępu do właściwości instancji urządzenia (Windows Vista i nowszych).

Aby uzyskać informacje o sposobie uzyskiwania dostępu do właściwości relacji urządzeń w systemach Windows Server 2003, Windows XP i Windows 2000, zobacz następujące tematy:

Pobieranie relacji wyrzucania, relacji usuwania, relacji władzy i relacji szyn

Pobieranie nadrzędnego elementu instancji urządzenia

Pobieranie podrzędnych elementów wystąpienia urządzenia

Pobieranie rodzeństwa wystąpienia urządzenia

Pobieranie stosunków wyrzucenia, stosunków usunięcia i stosunków władzy i stosunków autobusowych

Aby pobrać informacje o relacjach urządzeń w systemach Windows Server 2003, Windows XP i Windows 2000, wywołaj CM_Get_Device_ID_List i podaj następujące wartości parametrów:

  • Ustaw pszFilter do wskaźnika na ciąg zakończony wartością NULL, który określa identyfikator wystąpienia urządzenia, dla którego należy pobrać informacje o relacjach.

  • Ustaw bufor jako wskaźnik na bufor, który odbiera listę identyfikatorów wystąpień urządzenia zakończonych wartością NULL. Lista jest przerywana przez dodatkowy znak NULL. Wymagany rozmiar buforu można uzyskać, wywołując funkcję CM_Get_Device_ID_List_Size.

  • Ustaw BufferLen do rozmiaru buforu w znakach.

  • Ustaw ulFlags na jedną z następujących flag, aby pobrać odpowiednie informacje o relacjach:

    • CM_GETIDLIST_FILTER_EJECTIONRELATIONS

      Flaga CM_GETIDLIST_FILTER_EJECTIONRELATIONS pobiera relacje wysuwania , to te same informacje dostarczane przez właściwość urządzenia DEVPKEY_Device_EjectionRelations w systemie Windows Vista i nowszych wersjach.

    • CM_GETIDLIST_FILTER_REMOVALRELATIONS

      Flaga CM_GETIDLIST_FILTER_REMOVALRELATIONS pobiera relacje usuwania , które są tymi samymi informacjami udostępnianymi przez właściwość urządzenia DEVPKEY_Device_RemovalRelations w systemie Windows Vista i nowszych wersjach.

    • CM_GETIDLIST_FILTER_POWERRELATIONS

      Flaga CM_GETIDLIST_FILTER_POWERRELATIONS pobiera relacje zasilania, czyli te same informacje, które są dostarczane przez właściwość urządzenia DEVPKEY_Device_PowerRelations w systemie Windows Vista i nowszych wersjach.

    • CM_GETIDLIST_FILTER_BUSRELATIONS

      Flaga CM_GETIDLIST_FILTER_BUSRELATIONS pobiera relacje magistrali, które są tymi samymi informacjami udostępnianymi przez właściwość urządzenia DEVPKEY_Device_BusRelations w Windows Vista i nowszych wersjach.

Jeśli wywołanie CM_Get_Device_ID_List powiedzie się, CM_Get_Device_ID_List pobiera żądane informacje o relacjach i zwraca CR_SUCCESS. W przeciwnym razie CM_Get_Device_ID_List zwraca jeden z kodów błędów z prefiksem "CR_", które są zdefiniowane w Cfgmgr32.h.

Pobieranie obiektu nadrzędnego instancji urządzenia

Aby pobrać identyfikator wystąpienia urządzenia nadrzędnego w systemach Windows Server 2003, Windows XP i Windows 2000, wykonaj następujące kroki:

  1. Wywołaj funkcję CM_Get_Parent, aby pobrać dojście wystąpienia urządzenia do urządzenia nadrzędnego wystąpienia urządzenia.

  2. Wywołaj CM_Get_Device_ID, aby pobrać identyfikator wystąpienia urządzenia skojarzony z uchwytem wystąpienia urządzenia nadrzędnego, pobranym przez poprzednie wywołanie CM_Get_Parent.

Te informacje pobierane przy użyciu tej procedury są takie same jak te reprezentowane przez właściwość DEVPKEY_Device_Parent w ujednoliconym modelu właściwości urządzenia systemu Windows Vista i nowszych wersji.

Pobieranie podrzędnych elementów instancji urządzenia

Aby pobrać identyfikatory wystąpień urządzeń podrzędnych dla danego wystąpienia urządzenia w systemach Windows Server 2003, Windows XP i Windows 2000, wykonaj następujące kroki:

  1. Wywołaj funkcję CM_Get_Child, aby uzyskać dojście do wystąpienia urządzenia dla pierwszego podrzędnego urządzenia powiązanego z wystąpieniem urządzenia.

  2. Wywołaj CM_Get_Sibling tyle razy, ile będzie to konieczne, aby wyliczyć wszystkie urządzenia siostrzane pierwszego urządzenia podrzędnego pobranego przez wywołanie CM_Get_Child.

  3. Wywołaj CM_Get_Device_ID, aby pobrać identyfikatory instancji urządzenia, które są skojarzone z uchwytami instancji urządzenia zwróconymi przez wywołania CM_Get_Child i CM_Get_Sibling.

Te informacje pobierane przy użyciu tej procedury są takie same jak te reprezentowane przez właściwość DEVPKEY_Device_Children w ujednoliconym modelu właściwości urządzenia systemu Windows Vista i nowszych wersji.

Pobieranie rodzeństwa wystąpienia urządzenia

Aby pobrać identyfikatory wystąpienia urządzeń równorzędnych dla urządzenia Abc w systemach Windows Server 2003, Windows XP i Windows 2000, wykonaj następujące kroki:

  1. Wywołaj funkcję CM_Get_Parent, aby pobrać dojście wystąpienia urządzenia do urządzenia nadrzędnego wystąpienia urządzenia Abc.

  2. Wywołaj funkcję CM_Get_Child, aby pobrać dojście wystąpienia urządzenia do pierwszego urządzenia podrzędnego urządzenia nadrzędnego wystąpienia urządzenia Abc.

  3. Wywołaj CM_Get_Sibling tyle razy, ile jest konieczne, aby wyliczyć wszystkie urządzenia równorzędne pierwszego urządzenia podrzędnego urządzenia nadrzędnego. Wyliczenie zwróci również referencję do wystąpienia urządzenia Abc.

  4. Wywołaj CM_Get_Device_ID, aby pobrać identyfikatory wystąpień urządzenia skojarzone z uchwytami wystąpień urządzeń, które zostały zwrócone przez poprzednie wywołania do CM_Get_Sibling. Usuń uchwyt do wystąpienia urządzenia Abc z listy urządzeń równorzędnych pierwszego dziecka urządzenia nadrzędnego.

Informacje pobierane przy użyciu tej procedury są takie same jak te reprezentowane przez właściwość DEVPKEY_Device_Siblings w modelu ujednoliconej właściwości urządzenia systemu Windows Vista i nowszych wersji. Jeśli wywołanie funkcji CM_Xxx wymienione w tej sekcji powiedzie się, funkcja CM_Xxx pobiera żądane informacje i zwraca CR_SUCCESS. W przeciwnym razie funkcja CM_Xxx zwraca jeden z kodów błędów z prefiksem "CR_", które są zdefiniowane w Cfgmgr32.h.