mirror of
https://github.com/reactos/reactos.git
synced 2025-04-22 05:00:27 +00:00
- implemented RegDisablePredefinedCache()
- added stubs for RegEnableReflectionKey(), RegDisableReflectionKey() and RegQueryReflectionKey() svn path=/trunk/; revision=20870
This commit is contained in:
parent
55317536c0
commit
e4484b0bde
3 changed files with 78 additions and 5 deletions
|
@ -482,8 +482,10 @@ RegDeleteTreeA@8
|
||||||
RegDeleteTreeW@8
|
RegDeleteTreeW@8
|
||||||
RegDeleteValueA@8
|
RegDeleteValueA@8
|
||||||
RegDeleteValueW@8
|
RegDeleteValueW@8
|
||||||
;RegDisablePredefinedCache
|
RegDisablePredefinedCache@0
|
||||||
RegDisablePredefinedCacheEx@0
|
RegDisablePredefinedCacheEx@0
|
||||||
|
RegDisableReflectionKey@4
|
||||||
|
RegEnableReflectionKey@4
|
||||||
RegEnumKeyA@16
|
RegEnumKeyA@16
|
||||||
RegEnumKeyExA@32
|
RegEnumKeyExA@32
|
||||||
RegEnumKeyExW@32
|
RegEnumKeyExW@32
|
||||||
|
@ -508,6 +510,7 @@ RegQueryInfoKeyA@48
|
||||||
RegQueryInfoKeyW@48
|
RegQueryInfoKeyW@48
|
||||||
RegQueryMultipleValuesA@20
|
RegQueryMultipleValuesA@20
|
||||||
RegQueryMultipleValuesW@20
|
RegQueryMultipleValuesW@20
|
||||||
|
RegQueryReflectionKey@8
|
||||||
RegQueryValueA@16
|
RegQueryValueA@16
|
||||||
RegQueryValueExA@24
|
RegQueryValueExA@24
|
||||||
RegQueryValueExW@24
|
RegQueryValueExW@24
|
||||||
|
|
|
@ -30,6 +30,7 @@ static RTL_CRITICAL_SECTION HandleTableCS;
|
||||||
static HANDLE DefaultHandleTable[MAX_DEFAULT_HANDLES];
|
static HANDLE DefaultHandleTable[MAX_DEFAULT_HANDLES];
|
||||||
static HANDLE ProcessHeap;
|
static HANDLE ProcessHeap;
|
||||||
static BOOLEAN DefaultHandlesDisabled = FALSE;
|
static BOOLEAN DefaultHandlesDisabled = FALSE;
|
||||||
|
static BOOLEAN DefaultHandleHKUDisabled = FALSE;
|
||||||
|
|
||||||
/* PROTOTYPES ***************************************************************/
|
/* PROTOTYPES ***************************************************************/
|
||||||
|
|
||||||
|
@ -143,7 +144,7 @@ MapDefaultKey (OUT PHANDLE RealKey,
|
||||||
{
|
{
|
||||||
PHANDLE Handle;
|
PHANDLE Handle;
|
||||||
ULONG Index;
|
ULONG Index;
|
||||||
BOOLEAN DoOpen;
|
BOOLEAN DoOpen, DefDisabled;
|
||||||
NTSTATUS Status = STATUS_SUCCESS;
|
NTSTATUS Status = STATUS_SUCCESS;
|
||||||
|
|
||||||
TRACE("MapDefaultKey (Key %x)\n", Key);
|
TRACE("MapDefaultKey (Key %x)\n", Key);
|
||||||
|
@ -163,7 +164,12 @@ MapDefaultKey (OUT PHANDLE RealKey,
|
||||||
|
|
||||||
RtlEnterCriticalSection (&HandleTableCS);
|
RtlEnterCriticalSection (&HandleTableCS);
|
||||||
|
|
||||||
if (!DefaultHandlesDisabled)
|
if (Key == HKEY_CURRENT_USER)
|
||||||
|
DefDisabled = DefaultHandleHKUDisabled;
|
||||||
|
else
|
||||||
|
DefDisabled = DefaultHandlesDisabled;
|
||||||
|
|
||||||
|
if (!DefDisabled)
|
||||||
{
|
{
|
||||||
Handle = &DefaultHandleTable[Index];
|
Handle = &DefaultHandleTable[Index];
|
||||||
DoOpen = (*Handle == NULL);
|
DoOpen = (*Handle == NULL);
|
||||||
|
@ -183,7 +189,7 @@ MapDefaultKey (OUT PHANDLE RealKey,
|
||||||
|
|
||||||
if (NT_SUCCESS(Status))
|
if (NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
if (!DefaultHandlesDisabled)
|
if (!DefDisabled)
|
||||||
*RealKey = *Handle;
|
*RealKey = *Handle;
|
||||||
else
|
else
|
||||||
*(PULONG_PTR)Handle |= 0x1;
|
*(PULONG_PTR)Handle |= 0x1;
|
||||||
|
@ -294,6 +300,21 @@ OpenCurrentConfigKey (PHANDLE KeyHandle)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************
|
||||||
|
* RegDisablePredefinedCache
|
||||||
|
*
|
||||||
|
* @implemented
|
||||||
|
*/
|
||||||
|
LONG WINAPI
|
||||||
|
RegDisablePredefinedCache(VOID)
|
||||||
|
{
|
||||||
|
RtlEnterCriticalSection (&HandleTableCS);
|
||||||
|
DefaultHandleHKUDisabled = TRUE;
|
||||||
|
RtlLeaveCriticalSection (&HandleTableCS);
|
||||||
|
return ERROR_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
* RegDisablePredefinedCacheEx
|
* RegDisablePredefinedCacheEx
|
||||||
*
|
*
|
||||||
|
@ -1633,6 +1654,32 @@ RegDeleteTreeA(IN HKEY hKey,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************
|
||||||
|
* RegDisableReflectionKey
|
||||||
|
*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
LONG WINAPI
|
||||||
|
RegDisableReflectionKey(IN HKEY hBase)
|
||||||
|
{
|
||||||
|
DPRINT1("RegDisableReflectionKey(0x%p) UNIMPLEMENTED!\n", hBase);
|
||||||
|
return ERROR_CALL_NOT_IMPLEMENTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************
|
||||||
|
* RegEnableReflectionKey
|
||||||
|
*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
LONG WINAPI
|
||||||
|
RegEnableReflectionKey(IN HKEY hBase)
|
||||||
|
{
|
||||||
|
DPRINT1("RegEnableReflectionKey(0x%p) UNIMPLEMENTED!\n", hBase);
|
||||||
|
return ERROR_CALL_NOT_IMPLEMENTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
* RegSetKeyValueW
|
* RegSetKeyValueW
|
||||||
*
|
*
|
||||||
|
@ -3371,6 +3418,21 @@ RegQueryMultipleValuesW (HKEY hKey,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************
|
||||||
|
* RegQueryReflectionKey
|
||||||
|
*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
LONG WINAPI
|
||||||
|
RegQueryReflectionKey(IN HKEY hBase,
|
||||||
|
OUT BOOL* bIsReflectionDisabled)
|
||||||
|
{
|
||||||
|
DPRINT1("RegQueryReflectionKey(0x%p, 0x%p) UNIMPLEMENTED!\n",
|
||||||
|
hBase, bIsReflectionDisabled);
|
||||||
|
return ERROR_CALL_NOT_IMPLEMENTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
* RegQueryValueExW
|
* RegQueryValueExW
|
||||||
*
|
*
|
||||||
|
|
|
@ -78,8 +78,13 @@ LONG WINAPI RegDeleteTreeW(HKEY,LPCWSTR);
|
||||||
#endif
|
#endif
|
||||||
LONG WINAPI RegDeleteValueA(HKEY,LPCSTR);
|
LONG WINAPI RegDeleteValueA(HKEY,LPCSTR);
|
||||||
LONG WINAPI RegDeleteValueW(HKEY,LPCWSTR);
|
LONG WINAPI RegDeleteValueW(HKEY,LPCWSTR);
|
||||||
|
#if (_WIN32_WINNT >= 0x0500)
|
||||||
|
LONG WINAPI RegDisablePredefinedCache(VOID);
|
||||||
|
#endif
|
||||||
#if (_WIN32_WINNT >= 0x0600)
|
#if (_WIN32_WINNT >= 0x0600)
|
||||||
LONG WINAPI RegDisablePredefinedCacheEx(VOID);
|
LONG WINAPI RegDisablePredefinedCacheEx(VOID);
|
||||||
|
LONG WINAPI RegDisableReflectionKey(HKEY);
|
||||||
|
LONG WINAPI RegEnableReflectionKey(HKEY);
|
||||||
#endif
|
#endif
|
||||||
LONG WINAPI RegEnumKeyA(HKEY,DWORD,LPSTR,DWORD);
|
LONG WINAPI RegEnumKeyA(HKEY,DWORD,LPSTR,DWORD);
|
||||||
LONG WINAPI RegEnumKeyW(HKEY,DWORD,LPWSTR,DWORD);
|
LONG WINAPI RegEnumKeyW(HKEY,DWORD,LPWSTR,DWORD);
|
||||||
|
@ -104,6 +109,9 @@ LONG WINAPI RegQueryInfoKeyA(HKEY,LPSTR,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWOR
|
||||||
LONG WINAPI RegQueryInfoKeyW(HKEY,LPWSTR,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PFILETIME);
|
LONG WINAPI RegQueryInfoKeyW(HKEY,LPWSTR,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PFILETIME);
|
||||||
LONG WINAPI RegQueryMultipleValuesA(HKEY,PVALENTA,DWORD,LPSTR,LPDWORD);
|
LONG WINAPI RegQueryMultipleValuesA(HKEY,PVALENTA,DWORD,LPSTR,LPDWORD);
|
||||||
LONG WINAPI RegQueryMultipleValuesW(HKEY,PVALENTW,DWORD,LPWSTR,LPDWORD);
|
LONG WINAPI RegQueryMultipleValuesW(HKEY,PVALENTW,DWORD,LPWSTR,LPDWORD);
|
||||||
|
#if (_WIN32_WINNT >= 0x0600)
|
||||||
|
LONG WINAPI RegQueryReflectionKey(HKEY,BOOL*);
|
||||||
|
#endif
|
||||||
LONG WINAPI RegQueryValueA(HKEY,LPCSTR,LPSTR,PLONG);
|
LONG WINAPI RegQueryValueA(HKEY,LPCSTR,LPSTR,PLONG);
|
||||||
LONG WINAPI RegQueryValueExA(HKEY,LPCSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
|
LONG WINAPI RegQueryValueExA(HKEY,LPCSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
|
||||||
LONG WINAPI RegQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
|
LONG WINAPI RegQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
|
||||||
|
|
Loading…
Reference in a new issue