找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 12564|回复: 1

请教关于wmi and acpi

[复制链接]
发表于 2008-6-23 17:45:13 | 显示全部楼层 |阅读模式
在MS提供的acpimof.mof文件里定义了两个class,分别如下:) {3 ~3 w$ S" ?

9 @, I; p$ \# g: s$ V) o* p; cclass Package
! f1 E& l1 X5 x! U9 h& g{
* x# q6 h9 A/ m/ j    [WmiDataId(1),
% N! C: o6 o+ F- G& t     read, write,
$ O7 ~2 E  P$ _     Description("16 bytes of data")
/ O- T. F: B! m. O  F% ^- B, M& \    ] uint8 Bytes[16];
' k6 g( M! g9 [  }) y5 l2 T2 t};
1 q, {$ e' D' e% [! j0 G% c& `; ^4 Z/ [
[WMI,
% W" c% T; n* N; O4 f& \ Dynamic,
7 H* h- R: l, a& U- f9 A# W Provider("WmiProv"),
% ~+ i8 S. ~3 ^9 a( O1 @ Locale("MS\\0x409"),+ ]; o3 n& K; _5 K& |. x4 G) I
Description("Class to test Query/Set a package"),
4 k$ k3 P  @1 |7 i guid("{ABBC0F6a-8EA1-11d1-00A0-C90629100000}")% f: M% _5 @* B. w" \9 W
]
# R# ^0 s$ T$ N7 u9 X- Q. o  xclass AcpiTest_QSPackage
4 ?" ~* H5 K9 \) C8 ^{
9 N' }4 H3 N+ g% |    [key, read]3 m7 @0 @$ T; Y+ Q( h+ `
     string InstanceName;
6 O: O3 D* F3 A! q    [read] boolean Active;
( {  w4 k* E2 _  L$ @9 Y7 r4 R6 o# G2 D# w" x, `! @. D
    [WmiDataId(1),+ m/ u, E2 g3 m% E6 @# n! o5 x
     read, write,
$ q4 N$ u" S8 m2 @6 F9 R     Description("description"), |2 x7 A- ]4 L3 C! o, T* P3 T1 P  R
    ] Package Data;  K5 G: o) U! E- [+ m

# m6 ^2 m5 C8 A+ O6 z3 b};
+ n2 f5 E' z$ u. W3 n- E/ C* {2 K# i& w, R. o
请教各位大侠,如果我想得到 packge 类型的Data 是不是用:
% i( Z' d7 K' R3 s7 R9 K
5 h+ }+ @  O( |* \' zhres = pSvc->ExecQuery($ o0 q, t5 k! K4 C5 t/ ^& S
        bstr_t("WQL"),   X8 G& V) w$ U3 a' j& b
        bstr_t("SELECT * FROM AcpiTest_QSPackage"),
, b$ w) N2 h7 G0 `        WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, ! j9 m! i# J& r7 F/ u$ q
        NULL,; O( T& g% X  w- E# V5 ]
        &pEnumerator);
) w8 V! A3 U) @0 t' K; I8 h( B  |1 {* Y8 |, U3 u+ b3 v6 J
HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1,
! d  Y" l4 M  }) j+ L            &pclsObj, &uReturn);
/ A( a& c, T& u! v1 `2 l  \  |3 a
& w. |  {$ D# nhr = pclsObj->Get(L"Data", 0, &vtProp, 0, 0);
8 ~; V% `$ G, O% X/ G( g3 t" A如果是的话,我下一步要怎么操作vtProp?
/ i# e, M0 ^3 t5 N6 H: d  C* K单个的数或者字符串能得到,就是不知道怎么得到这种package类型的数,这个问题困扰了好几天了,望知道的大侠能指点小弟。谢谢了!
发表于 2008-6-23 18:32:31 | 显示全部楼层
方法之一:在Package已知长度的情况下,使用固定长度的数组。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2025-5-2 12:42 , Processed in 0.054458 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表