3 * Copyright (C) 2003, 2006 ReactOS Team
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 * COPYRIGHT: See COPYING in the top level directory
21 * PROJECT: ReactOS hive maker
22 * FILE: tools/mkhive/mkhive.h
24 * PROGRAMMERS: Eric Kohl
37 #define _countof(_Array) (sizeof(_Array) / sizeof(_Array[0]))
41 // Definitions copied from <ntstatus.h>
42 // We only want to include host headers, so we define them manually
43 #define STATUS_SUCCESS ((NTSTATUS)0x00000000)
44 #define STATUS_UNSUCCESSFUL ((NTSTATUS)0xC0000001)
45 #define STATUS_NOT_IMPLEMENTED ((NTSTATUS)0xC0000002)
46 #define STATUS_INVALID_PARAMETER ((NTSTATUS)0xC000000D)
47 #define STATUS_NO_MEMORY ((NTSTATUS)0xC0000017)
48 #define STATUS_INSUFFICIENT_RESOURCES ((NTSTATUS)0xC000009A)
49 #define STATUS_OBJECT_NAME_NOT_FOUND ((NTSTATUS)0xC0000034)
50 #define STATUS_INVALID_PARAMETER_2 ((NTSTATUS)0xC00000F0)
51 #define STATUS_BUFFER_OVERFLOW ((NTSTATUS)0x80000005)
53 unsigned char BitScanForward(ULONG
* Index
, unsigned long Mask
);
54 unsigned char BitScanReverse(ULONG
* const Index
, unsigned long Mask
);
55 #define RtlFillMemoryUlong(dst, len, val) memset(dst, val, len)
58 #define BitScanForward64 _BitScanForward64
59 #define BitScanReverse64 _BitScanReverse64
63 typedef LPVOID LPSECURITY_ATTRIBUTES
;
64 typedef HANDLE HKEY
, *PHKEY
;
68 IN OUT PUNICODE_STRING DestinationString
,
69 IN PCWSTR SourceString
);
77 IN LPCWSTR lpValueName
,
79 OUT PULONG lpType OPTIONAL
,
80 OUT PUCHAR lpData OPTIONAL
,
81 IN OUT PULONG lpcbData OPTIONAL
);
86 IN LPCWSTR lpValueName OPTIONAL
,
89 IN
const UCHAR
* lpData
,
100 IN LPCWSTR lpValueName OPTIONAL
);
106 OUT PHKEY phkResult
);
112 OUT PHKEY phkResult
);
119 #include "registry.h"
122 #define OBJ_NAME_PATH_SEPARATOR ((WCHAR)L'\\')
124 extern LIST_ENTRY CmiHiveListHead
;
125 #define ABS_VALUE(V) (((V) < 0) ? -(V) : (V))