BitMap 和 BitValue 限定符
位图是链接到具有 BitMap 和 BitValue 限定符的属性的整数。 属性值的每一位都充当 BitValue 列表中的值的数组中的索引。 由于属性值中的多个位可以同时“打开”,因此可以使用单个属性值来指示多个并发值。
例如,下面的 MOF 代码示例将 FileType 属性建立为具有 BitMap 和 BitValues 限定符。 它进一步确定低序位(位 0)对应于值“只读”。 下一位(位 1)对应于“Hidden”,依此等。 (并非所有位都必须重要。在这个八位系统中,两个高阶位(6 位和 7 位)没有意义。
[BitMap("0","1","2","3","4","5"),
BitValues("Read Only",
"Hidden",
"System",
"Volume Label",
"Subdirectory",
"Archive")]
byte FileType;
如果 FileType 属性报告值 7(位 0000 0111),则该文件为“只读”、“系统”和“已隐藏”。 如果 FileType 属性报告值 18(0x12位 0001 0010),则它是隐藏的子目录。
使用 MOF 代码有两种不同类型的位图:
从低序位开始的连续有效位(位 0)
如果有效位以低序位(位 0)开头,并且向上进度而不会中断 BitValue 数组中的所有项,则可以定义位值数组,而无需显式指定有效位。 以下 MOF 代码示例执行与上一示例相同的函数。
[BitValues("Read Only", "Hidden", "System", "Volume Label", "Subdirectory", "Archive")] byte FileType;
有效位前面有一个非有效位
如果低序位微不足道,或者有效位序列不连续,则必须同时指定 BitMap 和 BitValues 限定符。 下面的 MOF 代码示例演示了低序位不重要且有效位序列存在差距的情况。
[BitMap("1","4","5"), BitValues("Follow-up","Delivery receipt","Read receipt")] sint32 MailOptions;
在这种情况下,设置低序位(位 0)没有意义,将被忽略。 但是,设置位 1(0x2)表示此电子邮件已标记为跟进,设置位 4(0x8)表示当电子邮件到达收件人邮箱时,应将送达回执发送给发件人,并且设置位 5(0x10)指定在收件人打开电子邮件时应将已读回执发送给发件人。 设置所有三个有效位(0x1A)指定电子邮件的所有三个条件。
言论
在决定是否使用 BitMap/BitValues 还是 ValueMap/值 限定符时,请确定指示的任何值是否可以同时发生。 如果存在多个并发值,则必须使用 BitMap/BitValues。 如果所有值互斥,则应使用 ValueMap/值 限定符。
相关主题