BitMap 和 BitValue 限定符
位圖是連結至具有 BitMap 和 BitValue 限定符之屬性的整數。 屬性值的每個位都會做為 BitValue 清單中的值陣列的索引。 因為屬性值中的多個位可以同時「開啟」,所以可以使用單一屬性值來表示多個並行值。
例如,下列MOF程式代碼範例會將 FileType 屬性建立為具有 BitMap 和 BitValues 限定符。 它會進一步建立低序位 (位 0) 對應至值 「Read Only」。。 下一個位 (位元 1) 會對應至 「Hidden」 ,依此顯示。 (並非所有位都必須很重要。在這個八位系統中,兩個高階位 6 和 7 沒有意義。
[BitMap("0","1","2","3","4","5"),
BitValues("Read Only",
"Hidden",
"System",
"Volume Label",
"Subdirectory",
"Archive")]
byte FileType;
如果 FileType 屬性報告值 7 (bits 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/Values 限定符。
相關主題