mirror of
https://github.com/reactos/reactos.git
synced 2025-04-21 20:50:29 +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
|
||||
RegDeleteValueA@8
|
||||
RegDeleteValueW@8
|
||||
;RegDisablePredefinedCache
|
||||
RegDisablePredefinedCache@0
|
||||
RegDisablePredefinedCacheEx@0
|
||||
RegDisableReflectionKey@4
|
||||
RegEnableReflectionKey@4
|
||||
RegEnumKeyA@16
|
||||
RegEnumKeyExA@32
|
||||
RegEnumKeyExW@32
|
||||
|
@ -508,6 +510,7 @@ RegQueryInfoKeyA@48
|
|||
RegQueryInfoKeyW@48
|
||||
RegQueryMultipleValuesA@20
|
||||
RegQueryMultipleValuesW@20
|
||||
RegQueryReflectionKey@8
|
||||
RegQueryValueA@16
|
||||
RegQueryValueExA@24
|
||||
RegQueryValueExW@24
|
||||
|
|
|
@ -30,6 +30,7 @@ static RTL_CRITICAL_SECTION HandleTableCS;
|
|||
static HANDLE DefaultHandleTable[MAX_DEFAULT_HANDLES];
|
||||
static HANDLE ProcessHeap;
|
||||
static BOOLEAN DefaultHandlesDisabled = FALSE;
|
||||
static BOOLEAN DefaultHandleHKUDisabled = FALSE;
|
||||
|
||||
/* PROTOTYPES ***************************************************************/
|
||||
|
||||
|
@ -143,7 +144,7 @@ MapDefaultKey (OUT PHANDLE RealKey,
|
|||
{
|
||||
PHANDLE Handle;
|
||||
ULONG Index;
|
||||
BOOLEAN DoOpen;
|
||||
BOOLEAN DoOpen, DefDisabled;
|
||||
NTSTATUS Status = STATUS_SUCCESS;
|
||||
|
||||
TRACE("MapDefaultKey (Key %x)\n", Key);
|
||||
|
@ -163,7 +164,12 @@ MapDefaultKey (OUT PHANDLE RealKey,
|
|||
|
||||
RtlEnterCriticalSection (&HandleTableCS);
|
||||
|
||||
if (!DefaultHandlesDisabled)
|
||||
if (Key == HKEY_CURRENT_USER)
|
||||
DefDisabled = DefaultHandleHKUDisabled;
|
||||
else
|
||||
DefDisabled = DefaultHandlesDisabled;
|
||||
|
||||
if (!DefDisabled)
|
||||
{
|
||||
Handle = &DefaultHandleTable[Index];
|
||||
DoOpen = (*Handle == NULL);
|
||||
|
@ -183,7 +189,7 @@ MapDefaultKey (OUT PHANDLE RealKey,
|
|||
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
if (!DefaultHandlesDisabled)
|
||||
if (!DefDisabled)
|
||||
*RealKey = *Handle;
|
||||
else
|
||||
*(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
|
||||
*
|
||||
|
@ -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
|
||||
*
|
||||
|
@ -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
|
||||
*
|
||||
|
|
|
@ -78,8 +78,13 @@ LONG WINAPI RegDeleteTreeW(HKEY,LPCWSTR);
|
|||
#endif
|
||||
LONG WINAPI RegDeleteValueA(HKEY,LPCSTR);
|
||||
LONG WINAPI RegDeleteValueW(HKEY,LPCWSTR);
|
||||
#if (_WIN32_WINNT >= 0x0500)
|
||||
LONG WINAPI RegDisablePredefinedCache(VOID);
|
||||
#endif
|
||||
#if (_WIN32_WINNT >= 0x0600)
|
||||
LONG WINAPI RegDisablePredefinedCacheEx(VOID);
|
||||
LONG WINAPI RegDisableReflectionKey(HKEY);
|
||||
LONG WINAPI RegEnableReflectionKey(HKEY);
|
||||
#endif
|
||||
LONG WINAPI RegEnumKeyA(HKEY,DWORD,LPSTR,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 RegQueryMultipleValuesA(HKEY,PVALENTA,DWORD,LPSTR,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 RegQueryValueExA(HKEY,LPCSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
|
||||
LONG WINAPI RegQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
|
||||
|
|
Loading…
Reference in a new issue