mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 20:25:39 +00:00
Update for VALENTA and VALENTW type changes.
Change HANDLE to HKEY throughout. Bugfix and memory leak fixed. svn path=/trunk/; revision=3690
This commit is contained in:
parent
781e188154
commit
d6d5e1af3d
1 changed files with 32 additions and 26 deletions
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: reg.c,v 1.17 2002/09/08 10:22:36 chorns Exp $
|
/* $Id: reg.c,v 1.18 2002/11/02 13:55:06 robd Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS system libraries
|
* PROJECT: ReactOS system libraries
|
||||||
|
@ -286,7 +286,7 @@ RegCloseKey(HKEY hKey)
|
||||||
* RegConnectRegistryA
|
* RegConnectRegistryA
|
||||||
*/
|
*/
|
||||||
LONG STDCALL
|
LONG STDCALL
|
||||||
RegConnectRegistryA(LPSTR lpMachineName,
|
RegConnectRegistryA(LPCSTR lpMachineName,
|
||||||
HKEY hKey,
|
HKEY hKey,
|
||||||
PHKEY phkResult)
|
PHKEY phkResult)
|
||||||
{
|
{
|
||||||
|
@ -299,7 +299,7 @@ RegConnectRegistryA(LPSTR lpMachineName,
|
||||||
* RegConnectRegistryW
|
* RegConnectRegistryW
|
||||||
*/
|
*/
|
||||||
LONG STDCALL
|
LONG STDCALL
|
||||||
RegConnectRegistryW(LPWSTR lpMachineName,
|
RegConnectRegistryW(LPCWSTR lpMachineName,
|
||||||
HKEY hKey,
|
HKEY hKey,
|
||||||
PHKEY phkResult)
|
PHKEY phkResult)
|
||||||
{
|
{
|
||||||
|
@ -495,7 +495,8 @@ RegDeleteKeyA(
|
||||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||||
UNICODE_STRING SubKeyStringW;
|
UNICODE_STRING SubKeyStringW;
|
||||||
ANSI_STRING SubKeyStringA;
|
ANSI_STRING SubKeyStringA;
|
||||||
HANDLE ParentKey;
|
// HANDLE ParentKey;
|
||||||
|
HKEY ParentKey;
|
||||||
HANDLE TargetKey;
|
HANDLE TargetKey;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
LONG ErrorCode;
|
LONG ErrorCode;
|
||||||
|
@ -563,7 +564,7 @@ RegDeleteKeyW(
|
||||||
{
|
{
|
||||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||||
UNICODE_STRING SubKeyString;
|
UNICODE_STRING SubKeyString;
|
||||||
HANDLE ParentKey;
|
HKEY ParentKey;
|
||||||
HANDLE TargetKey;
|
HANDLE TargetKey;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
LONG ErrorCode;
|
LONG ErrorCode;
|
||||||
|
@ -627,7 +628,7 @@ RegDeleteValueA(
|
||||||
ANSI_STRING ValueNameA;
|
ANSI_STRING ValueNameA;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
LONG ErrorCode;
|
LONG ErrorCode;
|
||||||
HANDLE KeyHandle;
|
HKEY KeyHandle;
|
||||||
|
|
||||||
Status = MapDefaultKey(&KeyHandle,
|
Status = MapDefaultKey(&KeyHandle,
|
||||||
hKey);
|
hKey);
|
||||||
|
@ -675,7 +676,7 @@ RegDeleteValueW(
|
||||||
UNICODE_STRING ValueName;
|
UNICODE_STRING ValueName;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
LONG ErrorCode;
|
LONG ErrorCode;
|
||||||
HANDLE KeyHandle;
|
HKEY KeyHandle;
|
||||||
|
|
||||||
Status = MapDefaultKey(&KeyHandle,
|
Status = MapDefaultKey(&KeyHandle,
|
||||||
hKey);
|
hKey);
|
||||||
|
@ -843,7 +844,7 @@ RegEnumKeyExW(
|
||||||
DWORD dwError = ERROR_SUCCESS;
|
DWORD dwError = ERROR_SUCCESS;
|
||||||
ULONG BufferSize;
|
ULONG BufferSize;
|
||||||
ULONG ResultSize;
|
ULONG ResultSize;
|
||||||
HANDLE KeyHandle;
|
HKEY KeyHandle;
|
||||||
|
|
||||||
Status = MapDefaultKey(&KeyHandle, hKey);
|
Status = MapDefaultKey(&KeyHandle, hKey);
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
|
@ -856,7 +857,12 @@ RegEnumKeyExW(
|
||||||
BufferSize = sizeof (KEY_NODE_INFORMATION) + *lpcbName * sizeof(WCHAR);
|
BufferSize = sizeof (KEY_NODE_INFORMATION) + *lpcbName * sizeof(WCHAR);
|
||||||
if (lpClass)
|
if (lpClass)
|
||||||
BufferSize += *lpcbClass;
|
BufferSize += *lpcbClass;
|
||||||
KeyInfo = RtlAllocateHeap(RtlGetProcessHeap(), 0, BufferSize);
|
|
||||||
|
//
|
||||||
|
// I think this is a memory leak, always allocated again below ???
|
||||||
|
//
|
||||||
|
// KeyInfo = RtlAllocateHeap(RtlGetProcessHeap(), 0, BufferSize);
|
||||||
|
//
|
||||||
|
|
||||||
/* We don't know the exact size of the data returned, so call
|
/* We don't know the exact size of the data returned, so call
|
||||||
NtEnumerateKey() with a buffer size determined from parameters
|
NtEnumerateKey() with a buffer size determined from parameters
|
||||||
|
@ -1031,7 +1037,7 @@ RegEnumValueW(
|
||||||
DWORD dwError = ERROR_SUCCESS;
|
DWORD dwError = ERROR_SUCCESS;
|
||||||
ULONG BufferSize;
|
ULONG BufferSize;
|
||||||
ULONG ResultSize;
|
ULONG ResultSize;
|
||||||
HANDLE KeyHandle;
|
HKEY KeyHandle;
|
||||||
|
|
||||||
Status = MapDefaultKey(&KeyHandle, hKey);
|
Status = MapDefaultKey(&KeyHandle, hKey);
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
|
@ -1103,7 +1109,7 @@ RegEnumValueW(
|
||||||
if (lpData)
|
if (lpData)
|
||||||
{
|
{
|
||||||
memcpy(lpData,
|
memcpy(lpData,
|
||||||
(PVOID)((ULONG_PTR)ValueInfo->Name + ValueInfo->DataOffset),
|
(PVOID)((ULONG_PTR)ValueInfo + ValueInfo->DataOffset),
|
||||||
ValueInfo->DataLength);
|
ValueInfo->DataLength);
|
||||||
*lpcbData = (DWORD)ValueInfo->DataLength;
|
*lpcbData = (DWORD)ValueInfo->DataLength;
|
||||||
}
|
}
|
||||||
|
@ -1124,7 +1130,7 @@ RegEnumValueW(
|
||||||
LONG STDCALL
|
LONG STDCALL
|
||||||
RegFlushKey(HKEY hKey)
|
RegFlushKey(HKEY hKey)
|
||||||
{
|
{
|
||||||
HANDLE KeyHandle;
|
HKEY KeyHandle;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
LONG ErrorCode;
|
LONG ErrorCode;
|
||||||
|
|
||||||
|
@ -1235,7 +1241,7 @@ RegOpenKeyA(HKEY hKey,
|
||||||
{
|
{
|
||||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||||
UNICODE_STRING SubKeyString;
|
UNICODE_STRING SubKeyString;
|
||||||
HANDLE KeyHandle;
|
HKEY KeyHandle;
|
||||||
LONG ErrorCode;
|
LONG ErrorCode;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
|
@ -1292,7 +1298,7 @@ RegOpenKeyW (
|
||||||
NTSTATUS errCode;
|
NTSTATUS errCode;
|
||||||
UNICODE_STRING SubKeyString;
|
UNICODE_STRING SubKeyString;
|
||||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||||
HANDLE KeyHandle;
|
HKEY KeyHandle;
|
||||||
LONG ErrorCode;
|
LONG ErrorCode;
|
||||||
|
|
||||||
errCode = MapDefaultKey(&KeyHandle,
|
errCode = MapDefaultKey(&KeyHandle,
|
||||||
|
@ -1342,7 +1348,7 @@ RegOpenKeyExA(HKEY hKey,
|
||||||
{
|
{
|
||||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||||
UNICODE_STRING SubKeyString;
|
UNICODE_STRING SubKeyString;
|
||||||
HANDLE KeyHandle;
|
HKEY KeyHandle;
|
||||||
LONG ErrorCode;
|
LONG ErrorCode;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
|
@ -1395,7 +1401,7 @@ RegOpenKeyExW(HKEY hKey,
|
||||||
{
|
{
|
||||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||||
UNICODE_STRING SubKeyString;
|
UNICODE_STRING SubKeyString;
|
||||||
HANDLE KeyHandle;
|
HKEY KeyHandle;
|
||||||
LONG ErrorCode;
|
LONG ErrorCode;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
|
@ -1515,7 +1521,7 @@ RegQueryInfoKeyW(
|
||||||
KEY_FULL_INFORMATION FullInfoBuffer;
|
KEY_FULL_INFORMATION FullInfoBuffer;
|
||||||
PKEY_FULL_INFORMATION FullInfo;
|
PKEY_FULL_INFORMATION FullInfo;
|
||||||
ULONG FullInfoSize;
|
ULONG FullInfoSize;
|
||||||
HANDLE KeyHandle;
|
HKEY KeyHandle;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
LONG ErrorCode;
|
LONG ErrorCode;
|
||||||
ULONG Length;
|
ULONG Length;
|
||||||
|
@ -1629,7 +1635,7 @@ LONG
|
||||||
STDCALL
|
STDCALL
|
||||||
RegQueryMultipleValuesA(
|
RegQueryMultipleValuesA(
|
||||||
HKEY hKey,
|
HKEY hKey,
|
||||||
PVALENT val_list,
|
PVALENTA val_list,
|
||||||
DWORD num_vals,
|
DWORD num_vals,
|
||||||
LPSTR lpValueBuf,
|
LPSTR lpValueBuf,
|
||||||
LPDWORD ldwTotsize
|
LPDWORD ldwTotsize
|
||||||
|
@ -1648,7 +1654,7 @@ LONG
|
||||||
STDCALL
|
STDCALL
|
||||||
RegQueryMultipleValuesW(
|
RegQueryMultipleValuesW(
|
||||||
HKEY hKey,
|
HKEY hKey,
|
||||||
PVALENT val_list,
|
PVALENTW val_list,
|
||||||
DWORD num_vals,
|
DWORD num_vals,
|
||||||
LPWSTR lpValueBuf,
|
LPWSTR lpValueBuf,
|
||||||
LPDWORD ldwTotsize
|
LPDWORD ldwTotsize
|
||||||
|
@ -1745,7 +1751,7 @@ LONG
|
||||||
STDCALL
|
STDCALL
|
||||||
RegQueryValueExA(
|
RegQueryValueExA(
|
||||||
HKEY hKey,
|
HKEY hKey,
|
||||||
LPSTR lpValueName,
|
LPCSTR lpValueName,
|
||||||
LPDWORD lpReserved,
|
LPDWORD lpReserved,
|
||||||
LPDWORD lpType,
|
LPDWORD lpType,
|
||||||
LPBYTE lpData,
|
LPBYTE lpData,
|
||||||
|
@ -1849,7 +1855,7 @@ LONG
|
||||||
STDCALL
|
STDCALL
|
||||||
RegQueryValueExW(
|
RegQueryValueExW(
|
||||||
HKEY hKey,
|
HKEY hKey,
|
||||||
LPWSTR lpValueName,
|
LPCWSTR lpValueName,
|
||||||
LPDWORD lpReserved,
|
LPDWORD lpReserved,
|
||||||
LPDWORD lpType,
|
LPDWORD lpType,
|
||||||
LPBYTE lpData,
|
LPBYTE lpData,
|
||||||
|
@ -1862,7 +1868,7 @@ RegQueryValueExW(
|
||||||
DWORD dwError = ERROR_SUCCESS;
|
DWORD dwError = ERROR_SUCCESS;
|
||||||
ULONG BufferSize;
|
ULONG BufferSize;
|
||||||
ULONG ResultSize;
|
ULONG ResultSize;
|
||||||
HANDLE KeyHandle;
|
HKEY KeyHandle;
|
||||||
|
|
||||||
DPRINT("hKey 0x%X lpValueName %S lpData 0x%X lpcbData %d\n",
|
DPRINT("hKey 0x%X lpValueName %S lpData 0x%X lpcbData %d\n",
|
||||||
hKey, lpValueName, lpData, lpcbData ? *lpcbData : 0);
|
hKey, lpValueName, lpData, lpcbData ? *lpcbData : 0);
|
||||||
|
@ -1954,7 +1960,7 @@ RegQueryValueW(
|
||||||
NTSTATUS errCode;
|
NTSTATUS errCode;
|
||||||
UNICODE_STRING SubKeyString;
|
UNICODE_STRING SubKeyString;
|
||||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||||
HANDLE KeyHandle;
|
HKEY KeyHandle;
|
||||||
HANDLE RealKey;
|
HANDLE RealKey;
|
||||||
LONG ErrorCode;
|
LONG ErrorCode;
|
||||||
BOOL CloseRealKey;
|
BOOL CloseRealKey;
|
||||||
|
@ -2120,7 +2126,7 @@ RegSaveKeyW(HKEY hKey,
|
||||||
UNICODE_STRING NtName;
|
UNICODE_STRING NtName;
|
||||||
IO_STATUS_BLOCK IoStatusBlock;
|
IO_STATUS_BLOCK IoStatusBlock;
|
||||||
HANDLE FileHandle;
|
HANDLE FileHandle;
|
||||||
HANDLE KeyHandle;
|
HKEY KeyHandle;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
LONG ErrorCode;
|
LONG ErrorCode;
|
||||||
|
|
||||||
|
@ -2353,7 +2359,7 @@ RegSetValueExW(
|
||||||
{
|
{
|
||||||
UNICODE_STRING ValueName;
|
UNICODE_STRING ValueName;
|
||||||
PUNICODE_STRING pValueName;
|
PUNICODE_STRING pValueName;
|
||||||
HANDLE KeyHandle;
|
HKEY KeyHandle;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
LONG ErrorCode;
|
LONG ErrorCode;
|
||||||
|
|
||||||
|
@ -2409,7 +2415,7 @@ RegSetValueW(
|
||||||
NTSTATUS errCode;
|
NTSTATUS errCode;
|
||||||
UNICODE_STRING SubKeyString;
|
UNICODE_STRING SubKeyString;
|
||||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||||
HANDLE KeyHandle;
|
HKEY KeyHandle;
|
||||||
HANDLE RealKey;
|
HANDLE RealKey;
|
||||||
LONG ErrorCode;
|
LONG ErrorCode;
|
||||||
BOOL CloseRealKey;
|
BOOL CloseRealKey;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue