19.6.111. QWordSpace(QWord 空间资源描述符宏)
语法 :
QWordSpace (ResourceType, ResourceUsage, Decode, IsMinFixed, IsMaxFixed, TypeSpecificFlags, AddressGranularity, AddressMinimum,
AddressMaximum, AddressTranslation, RangeLength, ResourceSourceIndex, ResourceSource, DescriptorName)*
参数
ResourceType 求值为一个 8 位整数,用于指定该资源的类型。可接受的值为 0xC0 到 0xFF。
ResourceUsage 指定该内存范围是被此设备消耗(资源使用者)还是传递给子设备(资源提供者)。如果未指定任何内容,则假定为 资源使用者。
Decode 指定设备对该内存范围使用正向译码(正向译码)还是减法译码(减法译码)。如果未指定任何内容,则假定为 正向译码。会自动创建 1 位字段 DescriptorName._DEC 来引用资源描述符的这一部分,其中“1”表示 减法译码,“0”表示 正向译码。
IsMinFixed 指定此内存范围的最小地址是否固定(最小值固定)或可更改(最小值不固定)。如果未指定任何内容,则假定为 最小值不固定。会自动创建 1 位字段 DescriptorName._MIF 来引用资源描述符的这一部分,其中“1”表示 最小值固定,“0”表示 最小值不固定。
IsMaxFixed 指定此内存范围的最大地址是否固定(最大值固定)或可更改(最大值不固定)。如果未指定任何内容,则假定为 最大值不固定。会自动创建 1 位字段 DescriptorName._MAF 来引用资源描述符的这一部分,其中“1”表示 最大值固定,“0”表示 最大值不固定。
TypeSpecificFlags 求值为一个 8 位整数。这些标志特定于 ResourceType。
AddressGranularity 求值为一个 64 位整数,用于指定该内存范围必须对齐到 2 的幂边界(减 1)。会自动创建 64 位字段 DescriptorName._GRA 来引用资源描述符的这一部分。
AddressMinimum 求值为一个 64 位整数,用于指定该内存范围可能的最低基地址。在 AddressGranularity 中对应位为“1”的所有位上,该值必须为“0”。对于执行地址转换的桥设备,这是次总线上的地址。会自动创建 64 位字段 DescriptorName._MIN 来引用资源描述符的这一部分。
AddressMaximum 求值为一个 64 位整数,用于指定该内存范围可能的最高基地址。在 AddressGranularity 中对应位为“1”的所有位上,该值必须为“0”。对于执行地址转换的桥设备,这是次总线上的地址。会自动创建 64 位字段 DescriptorName._MAX 来引用资源描述符的这一部分。
AddressTranslation 求值为一个 64 位整数,用于指定要加到次总线 I/O 地址上的偏移量,从而得到对应的主总线 I/O 地址。对于所有非桥设备,或者不执行转换的桥,该值必须为“0”。会自动创建 64 位字段 DescriptorName._TRA 来引用资源描述符的这一部分。
RangeLength 求值为一个 64 位整数,用于指定该内存范围中已译码的总字节数。会自动创建 64 位字段 DescriptorName._LEN 来引用资源描述符的这一部分。
ResourceSourceIndex 是一个可选参数,求值为一个 8 位整数,用于指定 ResourceSource 所指定对象中的资源描述符。如果指定了该参数,则也必须指定 ResourceSource 参数。
ResourceSource 是一个可选参数,求值为一个字符串,其中包含产生资源池的设备路径,该内存范围即从该资源池中分配。如果指定了该参数但未指定 ResourceSourceIndex 参数,则假定其值为零。
DescriptorName 是一个可选参数,用于指定一个整数常量的名称,该常量将在当前作用域中创建,并包含此资源描述符在当前资源模板缓冲区中的偏移量。可将预定义的描述符字段名附加到该名称后,以通过 Buffer Field 运算符访问描述符中的各个字段。
说明
QWordSpace 宏求值为一个缓冲区,其中包含一个 64 位地址空间资源描述符,用于描述一个地址范围。64 位 AddressSpace 描述符的格式见表 6.45。该宏设计用于 ResourceTemplate(资源到缓冲区转换宏)内部。