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