:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / include / ddk / cmtypes.h
1
2 /*
3  * Object Manager structures and typedefs
4  */
5
6 /*
7  * key query information class 
8  */
9
10 typedef enum _KEY_INFORMATION_CLASS
11 {
12   KeyBasicInformation,
13   KeyNodeInformation,
14   KeyFullInformation
15 } KEY_INFORMATION_CLASS;
16
17 typedef struct _KEY_BASIC_INFORMATION
18 {
19   LARGE_INTEGER  LastWriteTime;
20   ULONG  TitleIndex;
21   ULONG  NameLength;
22   WCHAR  Name[1];
23 } KEY_BASIC_INFORMATION, *PKEY_BASIC_INFORMATION;
24
25 typedef struct _KEY_FULL_INFORMATION
26 {
27   LARGE_INTEGER  LastWriteTime;
28   ULONG  TitleIndex;
29   ULONG  ClassOffset;
30   ULONG  ClassLength;
31   ULONG  SubKeys;
32   ULONG  MaxNameLen;
33   ULONG  MaxClassLen;
34   ULONG  Values;
35   ULONG  MaxValueNameLen;
36   ULONG  MaxValueDataLen;
37   WCHAR  Class[1];
38 } KEY_FULL_INFORMATION, *PKEY_FULL_INFORMATION;
39
40 typedef struct _KEY_NODE_INFORMATION
41 {
42   LARGE_INTEGER  LastWriteTime;
43   ULONG  TitleIndex;
44   ULONG  ClassOffset;
45   ULONG  ClassLength;
46   ULONG  NameLength;
47   WCHAR  Name[1];
48 } KEY_NODE_INFORMATION, *PKEY_NODE_INFORMATION;
49
50 /* key set information class */
51 /*
52  * KeyWriteTimeInformation
53  */
54
55 /* key value information class */
56
57 typedef enum _KEY_VALUE_INFORMATION_CLASS
58 {
59   KeyValueBasicInformation,
60   KeyValueFullInformation,
61   KeyValuePartialInformation
62 } KEY_VALUE_INFORMATION_CLASS;
63
64 typedef struct _KEY_VALUE_BASIC_INFORMATION
65 {
66   ULONG  TitleIndex;
67   ULONG  Type;
68   ULONG  NameLength;
69   WCHAR  Name[1];
70 } KEY_VALUE_BASIC_INFORMATION, *PKEY_VALUE_BASIC_INFORMATION;
71
72 typedef struct _KEY_VALUE_FULL_INFORMATION
73 {
74   ULONG  TitleIndex;
75   ULONG  Type;
76   ULONG  DataOffset;
77   ULONG  DataLength;
78   ULONG  NameLength;
79   WCHAR  Name[1];
80 } KEY_VALUE_FULL_INFORMATION, *PKEY_VALUE_FULL_INFORMATION;
81
82 typedef struct _KEY_VALUE_PARTIAL_INFORMATION
83 {
84   ULONG  TitleIndex;
85   ULONG  Type;
86   ULONG  DataLength;
87   UCHAR  Data[1];
88 } KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION;
89
90
91 /* used by [Nt/Zw]QueryMultipleValueKey */
92
93 typedef struct _KEY_VALUE_ENTRY
94 {
95   PUNICODE_STRING  ValueName;
96   ULONG  DataLength;
97   ULONG  DataOffset;
98   ULONG  Type;
99 } KEY_VALUE_ENTRY, *PKEY_VALUE_ENTRY;
100