Udostępnij za pośrednictwem


Określanie identyfikatorów sprzętu dla urządzenia wielofunkcyjnego

Ważne

Metadane urządzenia są przestarzałe i zostaną usunięte w przyszłej wersji systemu Windows. Aby uzyskać informacje o zastąpieniu tej funkcji, zobacz Driver Package Container Metadata (Metadane kontenera pakietów sterowników).

Dla urządzenia fizycznego można określić więcej niż jeden element [HardwareID](/previous-versions/windows/hardware/metadata/ff546114(v=vs.85)). W tym celu należy określić wiele wartości elementu HardwareID w elemecie nadrzędnym [HardwareIDList](/previous-versions/windows/hardware/metadata/ff546121(v=vs.85)). Każda wartość musi określać unikatowy identyfikator sprzętu dla urządzenia.

Rozważmy na przykład drukarkę USB z jedną funkcją firmy Contoso, Ltd. Następujące elementy HardwareID mogą służyć do definiowania urządzenia:

<HardwareIDList>
  <HardwareID>DOID:USB\VID_1234&PID_1234&REV_0000</HardwareID>
  <HardwareID>DOID:USB\VID_1234&PID_1234</HardwareID>
  <HardwareID>DOID:USBPRINT\Contoso_Ltd_Co9999/HardwareID>
</HardwareIDList>

Jeśli urządzenie jest urządzeniem wielofunkcyjnym, kontener urządzenia łączy wszystkie identyfikatory sprzętu z węzłów urządzenia (devnodes) dla każdej funkcji sprzętowej na urządzeniu. Aby uzyskać więcej informacji na temat kontenerów urządzeń i identyfikatorów kontenerów, zobacz Identyfikatory kontenerów.

Na poniższej ilustracji przedstawiono relację między węzłami urządzeń urządzenia wielofunkcyjnego a kontenerem urządzenia.

Diagram ilustrujący łączenie identyfikatorów sprzętu z wielu węzłów deweloperskich w jeden kontener urządzenia.

W zależności od urządzenia wielofunkcyjnego można zdecydować, które wartości identyfikatorów sprzętu są określone przy użyciu oddzielnych [HardwareID](/previous-versions/windows/hardware/metadata/ff546114(v=vs.85)) elementów w elemecie [HardwareIDList](/previous-versions/windows/hardware/metadata/ff546121(v=vs.85)). W dowolnej kolejności w elemecie HardwareIDList można określić wiele identyfikatorów sprzętu. Należy jednak pamiętać o następujących kwestiach:

  • W danym węźle deweloperskim deterministyczne jest klasyfikowanie identyfikatorów sprzętu przez system operacyjny. Na przykład na poprzedniej ilustracji identyfikator HardwareID1-1 jest zawsze klasyfikowany wyżej niż HardwareID1-2 i HardwareID1-3.

  • System operacyjny nie zawsze klasyfikuje identyfikatora sprzętu z jednego węzła urządzenia wyżej niż identyfikator sprzętu z innego węzła urządzenia. Na przykład na poprzedniej ilustracji system operacyjny może nie zawsze rangi HardwareID1-1 wyższy niż HardwareID2-1.

W związku z tym upewnij się, że pakiet metadanych nie opiera się na kolejności ani klasyfikacji identyfikatorów sprzętu w węzłach urządzenia. Należy użyć wszystkich odpowiednich identyfikatorów sprzętu dla urządzenia wielofunkcyjnego w elemecie [HardwareIDList](/previous-versions/windows/hardware/metadata/ff546121(v=vs.85)) pakietu metadanych urządzenia. Gwarantuje to, że system operacyjny wybiera pakiet metadanych niezależnie od klasyfikacji identyfikatorów sprzętu.

Na podstawie topologii devnode pokazanego na poprzedniej ilustracji rozważ następujące sugestie:

  • Określ identyfikator HardwareID1-1, HardwareID2-1 i HardwareID3-1 w nowym pakiecie metadanych urządzenia, jeśli istnieje już inny pakiet metadanych określający identyfikator HardwareID2-1.

    Jeśli system operacyjny plasuje wartość HardwareID2-1 wyższą niż HardwareID1-1 i stwierdza, żeidentyfikator HardwareID2-1 jest określony zarówno w starym, jak i nowym pakiecie metadanych, system operacyjny wybiera pakiet metadanych na podstawie wartości [LastModifiedDate](/previous-versions/windows/hardware/metadata/ff548624(v=vs.85)) elementu XML. W takim przypadku system operacyjny wybiera nowy pakiet metadanych.

  • Jeśli nowy pakiet metadanych zawiera tylko HardwareID1-1, system operacyjny nie wybierze nowego pakietu, jeśli HardwareID2-1 jest klasyfikowane wyżej niż HardwareID1-1.

Aby uzyskać więcej informacji na temat wybierania i klasyfikowania pakietów metadanych, zobacz How the DMRC Selects a Device Metadata Package (Jak narzędzie DMRC wybiera pakiet metadanych urządzenia).