我正在尝试为Windows上的SMBIOS编写一个简单的解析器。
在阅读2.6.1版本(2.6是我笔记本电脑上的SMBIOS版本)的文档时,我遇到了系统信息条目(类型1-3.3.2节)。
在文档中,它说代表唤醒类型的字节值是枚举(即,其中每个比特表示唤醒类型是否存在的比特字段,1或0)。
现在,在下面的3.3.2.2小节中,为位偏移量00h到08h定义了Enum,使得它总共有9个位值。一个字节只有8位。是文档错误还是我遗漏了什么?
我只想从结构中取出字节,按位计算,并找出具有以下掩码的唤醒类型:
#define SM_SI_OTHER 0x00000001
#define SM_SI_UNKNOWN 0x00000010
#define SM_SI_APM_TIMER 0x00000100
#define SM_SI_MODERN_RING 0x00001000
#define SM_SI_LAN_REMOTE 0x00010000
#define SM_SI_POWER_SWITCH 0x00100000
#define SM_SI_PCI_PME 0x01000000
#define SM_SI_AC_POWER_RESTORED 0x10000000这里我缺少保留值。我该怎么做呢?
下面是我使用的文档的链接:http://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.6.1.pdf
首先,感谢您的回答。
发布于 2013-05-10 19:26:24
我看了看文档,它说字段是枚举,而不是位掩码。
https://stackoverflow.com/questions/16480866
复制相似问题