预定义属性 (PdAt) 对象类
描述
预定义属性 (PdAt) 对象类包含 预定义设备 (PdDv) 对象类中表示的每个设备的每个现有属性的条目。 在此意义上,属性是未在 PdDv 对象类中表示的任何与设备相关的信息。 这包括诸如中断级别,总线 I/O 地址范围,波特率,奇偶性设置,块大小和微码文件名之类的信息。
此对象类中的每个对象表示属于特定设备类的特定属性-子类-类型。 每个对象都包含所有可能的值,宽度,标志和 NLS 描述的属性名称,缺省值,列表或范围。 这些标志提供更多信息以描述属性。
属性类型
有三种类型的属性。 大多数是 常规 属性,这些属性通常描述设备的特定属性。 组 属性类型提供了常规属性的分组。 共享 属性类型用于标识必须全部共享给定属性的设备。
共享属性将另一个常规属性标识为必须共享的属性。 此属性始终是总线资源。 其他常规属性 (例如,总线中断级别) 可以由设备共享,但它们本身不是 共享 属性。 共享 属性要求相关设备具有与此属性相同的值。 共享属性的 "属性值" 描述符提供了必须共享的常规属性的名称。
组属性指定一组其他属性,这些属性的值被选择为组,以及用于选择缺省值的组属性号。 组中列出的每个属性都具有它可以采用的可能值的关联列表。 这些值必须表示为列表,而不能表示为范围。 对于组内的每个属性,可能值的列表还必须具有相同数目的选项。 例如,如果可能的值数为 n,那么组属性数本身的范围可以是 0 到 n-1。 为组选择的特定值指示要对组中的每个属性选取的值。 例如,如果组属性号为 0 ,那么该组中每个属性的值都是其各自列表中的第一个值。
预定义属性对象类描述符
预定义的属性对象类包含以下描述符:
ODM 类型 | 描述符名称 | 描述 | 描述符状态 |
---|---|---|---|
ODM_CHAR | uniquetype [UNIQUESIZE] | 唯一类型 | 必需 |
ODM_CHAR | 属性 [ATTRNAMESIZE] | 属性名 | 必需 |
ODM_VCHAR | deflt [DEFAULTSIZE] | 缺省值 | 必需 |
ODM_VCHAR | 值 [ATTRVALSIZE] | 属性值 | 必需 |
ODM_CHAR | 宽度 [WIDTHSIZE] | 宽度 | 可选 |
ODM_CHAR | 类型 [FLAGSIZE] | 属性类型标志 | 必需 |
ODM_CHAR | 通用 [FLAGSIZE] | 通用属性标志 | 可选 |
ODM_CHAR | 代表 [FLAGSIZE] | 属性表示标志 | 必需 |
ODM_SHORT | nls_index | NLS 索引 | 可选 |
以下描述了这些描述符:
描述信息 | 描述 |
---|---|
唯一类型 | 标识与此属性关联的设备的 class-subclass-type 名称。 此描述符与 PdDv 对象类中的唯一类型描述符相同。 |
属性名 | 指定设备属性的名称。 这是可以传递给 "属性/名称" 和 "属性/值" 对中的 姆杰夫 和 奇德夫 配置命令和设备方法的名称。 |
缺省值 | 如果有多个选项,或者即使只有一个选项用于属性值,那么缺省值是该属性通常设置为的值。 对于组而言,缺省值为组属性号。 例如,如果组中可能的选项数为 n,那么组属性数为 0 到 n-1 之间的数字。 对于共享属性,会将缺省值设置为空字符串。 在系统中定义设备时,会在 CuAt 对象类中找到采用非缺省值的属性。 在此对象类中找到采用缺省值的属性; 不会将这些属性复制到 CuAt 对象类。 因此,必须查询这两个属性对象类,才能获取特定设备的完整定制属性集。 |
属性值 | 标识可以与属性名称关联的可能的值。 该值的格式由属性表示标志确定。 对于常规属性,可以将可能的值表示为字符串,十六进制,八进制或十进制。 此外,还可以将其表示为范围或枚举列表。 如果只有一个可能的值,那么可以将该值表示为单个值,也可以表示为具有一个条目的枚举列表。 建议使用后者,因为使用枚举列表将允许 属性 子例程检查给定值是否实际上是可能的选项。 如果值为十六进制,那么将以 0x 表示法作为前缀。 如果值为八进制,那么该值将以前导零作为前缀。 如果值为小数,那么其值由其有效数字表示。 如果值为字符串,那么字符串本身不应具有嵌入的逗号,因为逗号用于分隔枚举列表中的项。 范围表示为三元组的值: 下限, 上限和 增量值。 下限 变量表示第一个可能的选项的值。 上限 变量指示最后一个可能选项的值。 下限 和 上限 值之间由-(连字符) 分隔。 下限 和 上限 值之间的值是通过将 增量值 变量的倍数添加到 下限 变量获得的。 上限 和 增量值 变量之间用逗号分隔。 对于范围,仅使用数字值。 此外,不允许使用不连续范围 (例如, 1-3 , 6-8)。 不允许使用列表和范围的组合。 枚举列表中包含以逗号分隔的值。 如果属性是组,那么 "可能的值" 描述符包含组成该组的属性的列表 (以逗号分隔)。 如果该属性是共享的,那么 "可能的值" 描述符包含必须与另一个设备共享的总线资源常规属性的名称。 对于类型 T 属性, "可能的值" 描述符包含以逗号分隔的列表中的消息号。 |
宽度 | 如果该属性是总线内存地址的类型为 M 或总线 I/O 地址的类型为 O 的常规属性,那么可以使用 Width 描述符来标识必须分配的总线内存或总线 I/O 空间的字节数。 或者,Width可以将字段设置为空字符串,这指示总线内存或总线 I/O 空间量由宽度属性 (即类型为 W 的属性) 指定。 如果该属性是类型为 W 的常规属性,那么 "宽度" 描述符包含此属性所对应总线内存地址或总线 I/O 地址属性的名称。 使用类型 W 属性允许总线内存或总线 I/O 空间量是可配置的,而如果在总线内存地址或总线 I/O 地址属性的宽度描述符中指定了该数量,那么它将固定在该值,并且无法定制。 对于所有其他属性,将使用空字符串来填充该字段。 |
属性类型 | 标识属性类型。 必须仅指定一种属性类型。 字符 A , B , M , I , N , O , P 和 W 表示属于常规属性的总线资源。 对于非总线资源的常规属性,定义了以下属性类型: |
|
|
|
|
|
|
|
|
以下是常规特性的总线资源类型: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
对于非常规属性,定义了以下属性类型:
|
|
通用属性标志 | 标识可应用于任何常规属性的标志。 这些标志的任何组合 (一个,两个或一个) 都是有效的。 对于组和共享属性,此描述符应该为空字符串。 对于类型 T 属性,此描述符始终设置为空字符串。 以下是定义的通用属性标志:
|
属性表示标志 | 指示常规属性值的表示法。 对于没有关联属性表示的组属性和共享属性,此描述符将设置为空字符串。 必须指定 N 或 S 标志,这两个标志均指示值表示法。 R, 我和 M 标志分别指示一个范围,枚举列表和多选值列表,并且是可选的。 如果既未指定 R 标志也未指定 我 标志,那么 属性 子例程将不会验证该值是否在范围或列表内。 以下是已定义的属性表示标志:
对于类型 T 属性,属性表示标志始终设置为 恩勒 (数字列表)。 |
NLS 索引 | 标识包含该属性的文本描述的消息的 NLS 消息目录中的消息号。 仅可显示的属性 (由通用属性标志描述符标识) 需要 NLS 消息。 如果该属性不可显示,那么可以将 NLS 索引设置为值 0。 与消息号关联的目录文件名和集合号存储在 PdDv 对象类中。 |