一般的な Implementation Use Extended Attribute は、次のようになります。
Implementation Use Extended Attribute format
RBP | 大きさ | 型 | 名称 | 内容 |
0〜3 | 4 | unsigned long | Attribute Type | =2048 |
4 | 1 | unsigned char | Attribute Subtype | =1 |
5〜7 | 3 | unsigned char[3] | Reserved | =0 |
8〜11 | 4 | unsigned long | Attribute Length (=A_L) | 属性長 (4の倍数) [bytes] |
12〜15 | 4 | unsigned long | Implementation Use Length (=IU_L) | (=4) 処理方法用の長さ [bytes] |
16〜47 | 32 | struct regid | Implementation Identifier | *処理方法名 |
48〜A_L-1 | IU_L | unsigned char[IU_L] | Implementation Use | 処理方法用 |
DVD-ROM では、これを使って Free Extended Attribute Space (空き拡張属性空間) と、 Copyright Management Information (著作権管理情報) を記述します。
Free Extended Attribute Space は、それが記録されている処理方法用拡張属性内の未使用領域を記述するために使います。 これは、拡張属性を追加、上書きするときに有用です。
Free Extended Attribute Space format
RBP | 大きさ | 型 | 名称 | 内容 |
0〜3 | 4 | unsigned long | Attribute Type | =2048 |
4 | 1 | unsigned char | Attribute Subtype | =1 |
5〜7 | 3 | unsigned char[3] | Reserved | =0 |
8〜11 | 4 | unsigned long | Attribute Length (=A_L) | (=52) 属性長 (4の倍数) [bytes] |
12〜15 | 4 | unsigned long | Implementation Use Length (=IU_L) | (=4) 処理方法用の長さ [bytes] |
16〜47 | 32 | struct regid | Implementation Identifier | ="*UDF FreeEASpace" |
48〜49 | 2 | unsigned short | Header Checksum | ヘッダのCRC |
50〜A_L-1 | IU_L-2 | unsigned char[IU_L-2] | Free EA Space | (=0) 空き領域長さ |
Header Checksum は上48バイトの単純な総和の下 1 バイトです。
空きが無ければ、
A_L = 52
IU_L = 4
と置き、Free EA Space の 2 バイトを 0 にセットすれば十分です。
Copyright Management Information は、そのファイルの著作権情報を記述します。
Copyright Management Information format
RBP | 大きさ | 型 | 名称 | 内容 |
0〜3 | 4 | unsigned long | Attribute Type | =2048 |
4 | 1 | unsigned char | Attribute Subtype | =1 |
5〜7 | 3 | unsigned char[3] | Reserved | =0 |
8〜11 | 4 | unsigned long | Attribute Length (=A_L) | =56 属性長 (4の倍数) [bytes] |
12〜15 | 4 | unsigned long | Implementation Use Length (=IU_L) | =8 処理方法用の長さ [bytes] |
16〜47 | 32 | struct regid | Implementation Identifier | ="*UDF DVD CGMS Info" |
48〜49 | 2 | unsigned short | Header Checksum | ヘッダのCRC |
50 | 1 | unsigned char | CGMS Information | CGMS |
51 | 1 | unsigned char | Data Structure Type | Protection System Information の形式 |
52〜55 | 4 | unsigned char[4] | Protection System Information | 保護システム情報 |
CGMS Information は次のとおりです。
CGMS Information field
bit | 意味 | 多くの場合 |
0〜3 | 予約 | 0 |
4〜5 | CGMS | 0:コピー制限なし 1:使用されない 2:1回だけ可 3:コピー不可 |
6 | 予約 | 0 |
7 | Copyrighted Material | 0:著作物は含まれず 1:著作物を含む |
Data Structure Type は、0 のみ用意されており、1〜255 は予約です。 Data Structure Type = 0 のとき、Protection System Information は次のとおりです。
Protection System Information field for Data Structure Type 0
RBP | 大きさ | 型 | 名称 | 内容 |
0 | 1 | unsigned char | Protection System Type | =0:保護システムなし =1:保護システム1 =2〜255:予約 |
1〜3 | 3 | unsigned char[3] | Reserved | =0 |
UDF1.02 では、これら以外に OS 別のフォーマットも用意されていますが、割愛します。