Added required defines and typedefs for ntoskrnl/io modules.
[reactos.git] / reactos / 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