AV/C 裝置標識碼
當使用者將 AV/C 裝置連線到電腦時, Avc.sys 列舉裝置上的使用中子單位,併為其產生裝置識別元 (ID) 字串。 AV/C 裝置中的每個使用中子單位都有裝置標識符。 如果 AV/C 裝置中沒有作用中的子單位,則 Avc.sys 產生 AV/C 裝置本身的裝置識別碼。
對等子單位的裝置識別元欄位格式為:
AVC\Vendor&Model&SubunitType&SubunitID
虛擬子單位的裝置識別元欄位格式為:
VAVC\Vendor&Model&SubunitType&SubunitID
在使用數位的欄位中,數位會轉換成十六進位,而 Alpha 字元則會轉換成大寫。 沒有前置零。 驅動程式 INF 檔案中指定的裝置識別碼必須符合此格式。 硬體識別碼和相容標識碼中的所有數值欄位都會標示如下(但例外狀況如下):
廠商: VEN_ (除非有廠商文字可用)
模型: MOD_ (除非有模型文字可用)
SubunitType: TYP_
SubunitID: ID_
Avc.sys會為每個存在於外部 AV/C 裝置上的使用中子單位建立裝置物件。 每當將 AV/C 裝置新增至 IEEE 1394 總線或從 IEEE 1394 總線移除時,就會觸發 IEEE 1394 總線重設。 Avc.sys然後重新列舉所有連線 AV/C 裝置上的使用中子單位。 重新列舉可讓裝置重新設定本身以新增或移除子單位,而不需要 Windows 在每次切換 AV/C 裝置的作業模式時重載 Avc.sys 。 例如,此功能適用於在相機模式與 VTR 模式之間切換 DV 攝影機時。 因此,子單位驅動程式只會在新增和移除對應的使用中子單位時載入和卸除。
Avc.sys無法區分相同 SubunitType 的多個子單位,因此新增和移除這些子單位會載入和卸除具有最高 SubunitID 的對應子單位驅動程式。
每個子單位的裝置物件都有一或兩個硬體標識碼和多個相容的標識碼。 廠商必須提供一或多個這些硬體或相容標識符,如 INF 檔案中針對其子單位驅動程式所述。 Windows 會使用這些裝置識別碼,在裝置第一次連線到計算機時找出適合載入每個子單位的驅動程式。 您可以檢查 Microsoft 提供的 61883.inf、Msdv.inf 和 Mstape.inf 檔案,以取得 AV/C 裝置的硬體和相容裝置標識符範例。 如需實作 INF 檔案的詳細資訊,請參閱 INF 檔案區段 和 INF 檔案指示詞。
裝置識別元字串的個別元素如下所示:
廠商
如果 IEEE 1394 設定 ROM 的單位功能根目錄中有廠商名稱文字,則會在 [廠商 ] 字段中使用廠商名稱文字。 例如:
AVC\Microsoft&Model&SubunitType&SubunitID
否則,廠商的唯一號碼(由 IEEE 1394 貿易協會指派)會用於 [廠商 ] 字段中。 在下列範例中,「50F2」 是 Microsoft 的 1394TA 廠商號碼:
AVC\VEN_50F2&Model&SubunitType&SubunitID
如果廠商名稱文字不存在,則會從 IEEE 1394 設定 ROM 根目錄中的Module_Vendor_ID專案取得數值。 此立即專案的命令和狀態緩存器 (CSR) 架構金鑰為 0316(十六進位),其餘 24 位是數值Module_Vendor_ID專案。
模型
如果 IEEE 1394 組態 ROM 的單位功能中有模型名稱文字,則會在 [模型 ] 欄位中使用模型名稱文字。 例如:
AVC\Microsoft&DVCamcorder&SubunitType&SubunitID
否則,模型編號會用於 [ 模型 ] 字段中。 例如:
AVC\Microsoft&MOD_0&SubunitType&SubunitID
會使用 1394 組態 ROM 單位目錄的模型文字,優先於單位目錄專案。 喜好設定的順序如下:
1.單位目錄中的數值標識符。
1.根目錄中的模型文字。
1.根目錄中的模型標識碼。
SubunitType
如果有的話, SubunitType 位元段會從子單位位址擷取,並轉換成每個位元組的十六進位值字串。 只有在子單位類型已擴充時,才會有多個字節。 一般而言,初始位元組是從位址位元組的五個最重要的位擷取,如AV/C數位介面命令集一般規格Rev 3.0的第5.3.3節所述。
例如: AVC\VEN_50F2&MOD_0&TYP_4&SubunitID
如需Avc.sys支援的子單位類型清單及其對應的數值,請參閱 AvcSubunitType。
SubunitID
如果 SubunitType 字段可用,則 SubunitID 字段也可供使用。 當 Avc.sys 查詢 AV/C 裝置的子單位資訊時,裝置會以每個類型的子單位計數回應。 這個以零起始的計數可用來為每個子單位建立裝置標識碼。 子單位位址規格也允許 延伸 SubunitID 欄位,但這個層面會隱藏在子單位驅動程式中(以及您 INF 檔案的作者)。 所有情況下都會使用以零起始的實例編號。 例如,如果 SubunitID 字段延伸為支援 270 個子單位,則第 270 個子單位的子單位標識碼為 10D(269 十進位)。 例如:
AVC\Microsoft&MOD_0&TYP_4&ID_10D
對於未提供 SubunitType 或 SubunitID 的 AV/C 單位,裝置識別符字串接著只會包含 Vendor 和 Model 字段,且沒有尾端和 (&) 。