Pengidentifikasi Perangkat AV/C

Saat pengguna menyambungkan perangkat AV/C ke komputer, Avc.sys menghitung subunit aktif pada perangkat dan menghasilkan string pengidentifikasi perangkat (ID) untuk mereka. Ada pengidentifikasi perangkat untuk setiap subunit aktif dalam perangkat AV/C. Jika tidak ada subunit aktif dalam perangkat AV/C, maka Avc.sys menghasilkan pengidentifikasi perangkat untuk perangkat AV/C itu sendiri.

Format untuk bidang pengidentifikasi perangkat untuk subunit serekan adalah:

AVC\Vendor&Model&SubunitType&SubunitID

Format untuk bidang pengidentifikasi perangkat untuk subunit virtual adalah:

VAVC\Vendor&Model&SubunitType&SubunitID

Di bidang tempat angka digunakan, angka dikonversi menjadi heksadesimal, dan karakter alfa dikonversi menjadi huruf besar. Tidak ada nol di depan. Pengidentifikasi perangkat yang ditentukan dalam file INF untuk driver harus cocok dengan format ini. Semua bidang numerik dalam pengidentifikasi perangkat keras dan pengidentifikasi yang kompatibel ditandai sebagai berikut (dengan pengecualian sebagaimana disebutkan):

  • Vendor: VEN_ (kecuali teks vendor tersedia)

  • Model: MOD_ (kecuali teks model tersedia)

  • SubunitType: TYP_

  • SubunitID: ID_

Avc.sys membuat objek perangkat untuk setiap subunit aktif yang ada di perangkat AV/C eksternal. Reset bus IEEE 1394 dipicu setiap kali perangkat AV/C ditambahkan ke atau dihapus dari bus IEEE 1394. Avc.sys kemudian menghitung ulang subunit aktif pada semua perangkat AV/C yang terhubung. Enumerasi ulang memungkinkan perangkat untuk mengonfigurasi ulang dirinya sendiri untuk menambahkan atau menghapus subunit tanpa mengharuskan Windows memuat ulang Avc.sys setiap kali mode operasi perangkat AV/C dialihkan. Misalnya, fungsionalitas ini berlaku ketika camcorder DV dialihkan antara mode kamera dan mode VTR. Akibatnya, driver subunit dimuat dan dibongkar hanya karena subunit aktif yang sesuai ditambahkan dan dihapus.

Avc.sys tidak dapat membedakan antara beberapa subunit dari SubunitType yang sama, jadi menambahkan dan menghapus beban subunit ini dan membongkar driver subunit yang sesuai dengan SubunitID tertinggi.

Setiap objek perangkat subunit memiliki satu atau dua pengidentifikasi perangkat keras dan beberapa pengidentifikasi yang kompatibel. Vendor harus menyediakan satu atau beberapa perangkat keras ini atau pengidentifikasi yang kompatibel, yang dijelaskan di bawah ini dalam file INF untuk driver subunit mereka. Windows menggunakan pengidentifikasi perangkat ini untuk menemukan pengandar yang sesuai untuk dimuat untuk setiap subunit saat pertama kali perangkat tersambung ke komputer. Anda dapat memeriksa file 61883.inf, Msdv.inf, dan Mstape.inf yang disediakan Microsoft untuk contoh perangkat keras dan pengidentifikasi perangkat yang kompatibel untuk perangkat AV/C. Untuk informasi selengkapnya tentang menerapkan file INF, lihat Bagian File INF dan Arahan File INF.

Elemen individu dari string pengidentifikasi perangkat adalah sebagai berikut:

Vendor

Jika teks nama vendor ada di direktori akar Kemampuan Unit ROM Konfigurasi IEEE 1394, maka teks nama vendor digunakan di bidang Vendor. Contohnya:

AVC\Microsoft&Model&SubunitType&SubunitID

Jika tidak, nomor unik vendor (seperti yang ditetapkan oleh IEEE 1394 Trade Association) digunakan di bidang Vendor. Dalam contoh berikut, "50F2" adalah nomor vendor Microsoft 1394TA:

AVC\VEN_50F2&Model&SubunitType&SubunitID

Jika teks nama vendor tidak ada, maka nilai numerik diperoleh dari entri Module_Vendor_ID di direktori akar ROM Konfigurasi IEEE 1394. Kunci Arsitektur Command and Status Register (CSR) untuk entri langsung ini adalah 0316 (heksadesimal), dan 24 bit yang tersisa adalah entri Module_Vendor_ID numerik.

Model

Jika teks nama model ada di Kemampuan Unit ROM Konfigurasi IEEE 1394, maka teks nama model digunakan di bidang Model. Contohnya:

AVC\Microsoft&DVCamcorder&SubunitType&SubunitID

Jika tidak, nomor model digunakan di bidang Model. Contohnya:

AVC\Microsoft&MOD_0&SubunitType&SubunitID

Teks model dari direktori unit ROM Konfigurasi 1394 digunakan, memberikan prioritas ke entri direktori unit. Urutan preferensi adalah sebagai berikut:

1.Pengidentifikasi numerik dari direktori unit.

1.Teks model dari direktori akar.

1.Pengidentifikasi model dari direktori akar.

SubunitType

Jika tersedia, bidang SubunitType diekstrak dari alamat subunit dan dikonversi ke string nilai heksadesimal untuk setiap byte. Ada beberapa byte hanya jika jenis subunit telah diperluas. Biasanya, byte awal diekstrak dari lima bit byte alamat yang paling signifikan, seperti yang dijelaskan dalam bagian 5.3.3 dari AV/C Digital Interface Command Set General Specification, Rev 3.0.

Misalnya: AVC\VEN_50F2&MOD_0&TYP_4&SubunitID

Untuk daftar jenis subunit yang Avc.sys dukung dan nilai numerik yang sesuai, lihat AvcSubunitType.

SubunitID

Jika bidang SubunitType tersedia, bidang SubunitID juga tersedia. Saat Avc.sys meminta perangkat AV/C untuk informasi subunitnya, perangkat merespons dengan jumlah subunit untuk setiap jenis. Jumlah berbasis nol ini digunakan untuk membuat pengidentifikasi perangkat untuk setiap subunit. Spesifikasi alamat subunit juga memungkinkan bidang SubunitID diperluas, tetapi aspek ini disembunyikan dari driver subunit (dan dari Anda, penulis file INF). Nomor instans berbasis nol digunakan dalam semua kasus. Misalnya, jika bidang SubunitID diperluas untuk mendukung 270 subunit, subunit ke-270 memiliki pengidentifikasi subunit 10D (269 desimal). Contohnya:

AVC\Microsoft&MOD_0&TYP_4&ID_10D

Untuk unit AV/C yang tidak menyediakan SubunitType atau SubunitID, string pengidentifikasi perangkat kemudian hanya terdiri dari bidang Vendor dan Model, tanpa trailing ampersand (&).