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