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
数値が使用されているフィールドでは、数値は 16 進数に変換され、英数字は大文字に変換されます。 先行ゼロはありません。 ドライバーの INF ファイルで指定されたデバイス識別子は、この形式と一致する必要があります。 ハードウェア識別子と互換性のある識別子のすべての数値フィールドは、次のようにタグ付けされます (例外は記載されています)。
ベンダー: VEN_ (仕入先テキストが使用可能でない限り)
モデル: MOD_ (モデル テキストが使用可能でない場合)
SubunitType: TYP_
SubunitID: ID_
Avc.sys は、外部 AV/C デバイスに存在するアクティブなサブユニットごとにデバイス オブジェクトを作成します。 IEEE 1394 バスのリセットは、AV/C デバイスが IEEE 1394 バスに追加されるか、IEEE 1394 バスから削除されるたびにトリガーされます。 Avc.sys 、接続されているすべての AV/C デバイスでアクティブなサブユニットを再列挙します。 再列挙により、デバイスは AV/C デバイスの動作モードが切り替えるたびに Avc.sys を再読み込みすることなく、サブユニットを追加または削除するようにデバイス自体を再構成できます。 たとえば、この機能は、DV ビデオカメラがカメラ モードと VTR モードの間で切り替わるときに適用されます。 その結果、サブユニット ドライバーは、対応するアクティブなサブユニットが追加および削除されるときにのみ読み込まれ、アンロードされます。
Avc.sys は同じ SubunitType の複数のサブユニットを区別できないため、これらのサブユニットを追加および削除すると、対応するサブユニット ドライバーが読み込まれてアンロードされ、 SubunitID が最も高くなります。
各サブユニットのデバイス オブジェクトには、1 つまたは 2 つのハードウェア識別子と複数の互換性のある識別子があります。 ベンダーは、これらのハードウェアまたは互換性のある識別子の 1 つ以上を提供する必要があります。サブユニット ドライバーの INF ファイルで後述します。 Windows では、これらのデバイス識別子を使用して、デバイスがコンピューターに初めて接続されるときに、各サブユニットに読み込む適切なドライバーを見つけます。 AV/C デバイスのハードウェアと互換性のあるデバイス識別子の例については、Microsoft 提供の 61883.inf、 Msdv.inf 、 Mstape.inf ファイルを調べることができます。 INF ファイルの実装の詳細については、「INF ファイルセクションと INF ファイル ディレクティブ」を参照してください。
デバイス識別子文字列の個々の要素は次のとおりです。
仕入先
ベンダー名テキストが IEEE 1394 Configuration ROM の Unit Capabilities ルート ディレクトリに存在する場合は、ベンダー名のテキストが [ベンダー ] フィールドで使用されます。 次に例を示します。
AVC\Microsoft&Model&SubunitType&SubunitID
それ以外の場合は、ベンダーの一意の番号 (IEEE 1394 貿易協会によって割り当てられている) が [仕入先 ] フィールドで使用されます。 次の例では、"50F2" は Microsoft の 1394TA ベンダー番号です。
AVC\VEN_50F2&Model&SubunitType&SubunitID
ベンダー名のテキストが存在しない場合、数値は IEEE 1394 構成 ROM のルート ディレクトリのModule_Vendor_IDエントリから取得されます。 この即時エントリのコマンドおよびステータス レジスタ (CSR) アーキテクチャ キーは 0316 (16 進数) で、残りの 24 ビットは数値Module_Vendor_IDエントリです。
モデル
モデル名のテキストが IEEE 1394 Configuration ROM のユニット機能に存在する場合は、モデル名のテキストが [モデル ] フィールドで使用されます。 次に例を示します。
AVC\Microsoft&DVCamcorder&SubunitType&SubunitID
それ以外の場合は、 [モデル] フィールドで モデル 番号が使用されます。 次に例を示します。
AVC\Microsoft&MOD_0&SubunitType&SubunitID
1394 構成 ROM ユニット ディレクトリのモデル テキストが使用され、ユニット ディレクトリ エントリが優先されます。 優先順位は次のとおりです。
1.ユニット ディレクトリからの数値識別子。
1.ルート ディレクトリからのモデル テキスト。
1.ルート ディレクトリからのモデル識別子。
SubunitType
使用可能な場合は、 サブユニット アドレスから SubunitType フィールドが抽出され、各バイトの 16 進値の文字列に変換されます。 サブユニット型が拡張されている場合にのみ、複数のバイトがあります。 通常、最初のバイトは、 AV/C Digital Interface Command Set General Specification, Rev 3.0 のセクション 5.3.3 で説明されているように、アドレス バイトの 5 つの最上位ビットから抽出されます。
例: AVC\VEN_50F2&MOD_0&TYP_4&SubunitID
Avc.sys がサポートするサブユニット型とそれに対応する数値の一覧については、「AvcSubunitType」を参照してください。
SubunitID
SubunitType フィールドが使用可能な場合は、 SubunitID フィールドも使用できます。 Avc.sys AV/C デバイスにサブユニット情報を照会すると、デバイスは各種類のサブユニットの数で応答します。 この 0 から始まる数は、各サブユニットのデバイス識別子を作成するために使用されます。 サブユニット アドレスの指定では 、 SubunitID フィールドを拡張することもできますが、この側面はサブユニット ドライバー (および INF ファイルの作成者) には表示されません。 0 から始まるインスタンス番号は、すべてのケースで使用されます。 たとえば、 SubunitID フィールドが 270 個のサブユニットをサポートするように拡張されている場合、270 番目のサブユニットのサブユニット識別子は 10D (10 進数 269) です。 次に例を示します。
AVC\Microsoft&MOD_0&TYP_4&ID_10D
SubunitType または SubunitID を提供しない AV/C ユニットの場合、デバイス識別子文字列は Vendor フィールドと Model フィールドのみで構成され、末尾のアンパサンド (&) は付きません。