Udostępnij za pośrednictwem


Identyfikatory urządzeń AV/C

Gdy użytkownik łączy urządzenie AV/C z komputerem, Avc.sys wylicza aktywne podnity na urządzeniu i generuje dla nich ciągi identyfikatora urządzenia (ID). Istnieje identyfikator urządzenia dla każdej aktywnej podjednostki w urządzeniu AV/C. Jeśli na urządzeniu AV/C nie ma żadnych aktywnych jednostek podrzędnych, Avc.sys generuje identyfikator urządzenia dla samego urządzenia AV/C.

Format pól identyfikatora urządzenia dla jednostek równorzędnych to:

AVC\Vendor&Model&SubunitType&SubunitID

Format pól identyfikatora urządzenia dla podjednostek wirtualnych to:

VAVC\Vendor&Model&SubunitType&SubunitID

W polach, w których są używane liczby, liczby są konwertowane na szesnastkowe, a znaki alfa są konwertowane na wielkie litery. Brak zer wiodących. Identyfikator urządzenia określony w pliku INF sterownika musi być zgodny z tym formatem. Wszystkie pola liczbowe w identyfikatorach sprzętu i zgodnych identyfikatorach są oznaczane w następujący sposób (z wyjątkami, jak wspomniano):

  • Dostawca: VEN_ (chyba że dostępny jest tekst dostawcy)

  • Model: MOD_ (chyba że tekst modelu jest dostępny)

  • SubunitType: TYP_

  • SubunitID: ID_

Avc.sys tworzy obiekt urządzenia dla każdej aktywnej podjednostki, która jest obecna w zewnętrznym urządzeniu AV/C. Resetowanie magistrali IEEE 1394 jest wyzwalane za każdym razem, gdy urządzenie AV/C zostanie dodane lub usunięte z magistrali IEEE 1394. Avc.sys następnie przeprowadza ponowne wyliczanie aktywnych podjednostek na wszystkich połączonych urządzeniach AV/C. Ponowne wyliczanie umożliwia urządzeniu ponowne skonfigurowanie się w celu dodania lub usunięcia podjednostek bez konieczności ładowania Avc.sys za każdym razem, gdy tryb operacyjny urządzenia AV/C jest przełączany. Na przykład ta funkcja ma zastosowanie, gdy kamera DV jest przełączana między trybem kamery a trybem VTR. W związku z tym sterowniki podjednostek są ładowane i zwalniane tylko wtedy, gdy odpowiednie aktywne podjednostki są dodawane i usuwane.

Avc.sys nie może odróżnić wielu podjednostek tego samego SubunitType, dlatego dodanie i usunięcie tych podjednostek ładuje i zwalnia odpowiedni sterownik podjednostki z najwyższym SubunitID.

Każdy obiekt urządzenia podrzędnego ma jeden lub dwa identyfikatory sprzętu i wiele zgodnych identyfikatorów. Dostawca musi podać co najmniej jeden z tych identyfikatorów sprzętowych lub zgodnych, opisanych poniżej w pliku INF dla sterownika podrzędnego. System Windows używa tych identyfikatorów urządzeń do lokalizowania odpowiednich sterowników do wczytania dla każdej podjednostki przy pierwszym połączeniu urządzenia z komputerem. Możesz sprawdzić pliki 61883.inf dostarczone przez firmę Microsoft, Msdv.inf i Mstape.inf , aby zapoznać się z przykładami identyfikatorów urządzeń sprzętowych i zgodnych dla urządzeń AV/C. Aby uzyskać więcej informacji na temat implementowania plików INF, zobacz Sekcje plików INF i dyrektywy plików INF.

Poszczególne elementy ciągu identyfikatora urządzenia są następujące:

Sprzedawca

Jeśli tekst nazwy dostawcy znajduje się w katalogu głównym możliwości jednostki w ROM-ie konfiguracji IEEE 1394, tekst nazwy dostawcy jest używany w polu Dostawca. Przykład:

AVC\Microsoft&Model&SubunitType&SubunitID

W przeciwnym razie unikatowy numer dostawcy (przypisany przez stowarzyszenie handlowe IEEE 1394) jest używany w polu Dostawca . W poniższym przykładzie "50F2" to numer dostawcy 1394TA firmy Microsoft:

AVC\VEN_50F2&Model&SubunitType&SubunitID

Jeśli tekst nazwy dostawcy nie jest obecny, wartość liczbowa jest uzyskiwana z wpisu Module_Vendor_ID w katalogu głównym ROM konfiguracji IEEE 1394. Klucz architektury Rejestru poleceń i stanu (CSR) dla tego natychmiastowego wpisu to 0316 (szesnastkowy), a pozostałe 24 bity to wpis liczbowy Module_Vendor_ID.

modelu

Jeśli tekst nazwy modelu znajduje się w możliwościach jednostki ROM konfiguracji IEEE 1394, tekst nazwy modelu jest używany w polu Model . Przykład:

AVC\Microsoft&DVCamcorder&SubunitType&SubunitID

W przeciwnym razie numer modelu jest używany w polu Model . Przykład:

AVC\Microsoft&MOD_0&SubunitType&SubunitID

Używany jest tekst wzorcowy z katalogu jednostki ROM konfiguracji 1394, przy czym ma on pierwszeństwo przed wpisami w katalogu jednostki. Kolejność preferencji jest następująca:

1.Identyfikator liczbowy z katalogu jednostkowego.

1.Tekst modelu z katalogu głównego.

1.Identyfikator modelu z katalogu głównego.

TypPodjednostki

Jeśli jest dostępna, pole SubunitType jest wyodrębniane z adresu podrzędnego i konwertowane na ciąg wartości szesnastkowych dla każdego bajtu. Istnieje wiele bajtów tylko wtedy, gdy typ podjednostki został rozszerzony. Zazwyczaj początkowy bajt jest wyodrębniany z pięciu najbardziej znaczących bitów bajtu adresu, zgodnie z opisem w sekcji 5.3.3 zestawu poleceń interfejsu cyfrowego AV/C General Specification, Rev 3.0.

Na przykład : AVC\VEN_50F2&MOD_0&TYP_4&subunitID

Aby uzyskać listę typów podrzędnych, które Avc.sys obsługują i odpowiadające im wartości liczbowe, zobacz AvcSubunitType.

Identyfikator subjednostki

Jeśli pole SubunitType jest dostępne, pole SubunitID jest również dostępne. Gdy Avc.sys wysyła zapytanie do urządzenia AV/C o informacje o jego podjednostkach, urządzenie odpowiada z liczbą podjednostek dla każdego typu. Ta liczba indeksowana od zera służy do tworzenia identyfikatora urządzenia dla każdej podjednostki. Specyfikacja adresu podrzędnego umożliwia również rozszerzenie pola SubunitID, ale ten aspekt jest ukryty przed sterownikiem podrzędnym (i przed Tobą, jako autorem pliku INF). Numer zerowy wystąpienia jest używany we wszystkich przypadkach. Jeśli na przykład pole SubunitID zostało rozszerzone w celu obsługi 270 podjednostek, 270. podjednostka ma identyfikator podjednostki 10D (269 dziesiętnie). Przykład:

AVC\Microsoft&MOD_0&TYP_4&ID_10D

W przypadku jednostek AV/C, które nie udostępniają wartości SubunitType lub SubunitID, ciąg identyfikatora urządzenia składa się tylko z pól Vendor i Model, bez końcowego znaku '&'.