Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996.
//
// registry.hxx
//
//--------------------------------------------------------------------------
#ifndef __REGISTRY_HXX__
#define __REGISTRY_HXX__
#define REGNOTFOUND( Status ) ((ERROR_FILE_NOT_FOUND == Status) || \
(ERROR_BAD_PATHNAME == Status))
#define APP_PATH L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\"
#define APP_PATH_LEN (sizeof( APP_PATH ) - sizeof( WCHAR )) / sizeof( WCHAR )
#ifdef SERVER_HANDLER
extern BOOL gbDisableEmbeddingServerHandler; #endif
extern DWORD gdwRemoteBindingHandleCacheMaxSize; extern DWORD gdwRemoteBindingHandleCacheMaxLifetime; extern DWORD gdwRemoteBindingHandleCacheIdleTimeout;
extern BOOL gbSAFERROTChecksEnabled; extern BOOL gbSAFERAAAChecksEnabled; extern BOOL gbDynamicIPChangesEnabled;
DWORD ReadStringValue( IN HKEY hKey, IN WCHAR * pwszValueName, OUT WCHAR ** ppwszString );
DWORD ReadStringKeyValue( IN HKEY hKey, IN WCHAR * pwszKeyName, OUT WCHAR ** ppwszString );
DWORD ReadSecurityDescriptor( IN HKEY hKey, IN WCHAR * pwszValue, OUT CSecDescriptor ** ppSD );
HRESULT InitSCMRegistry();
void ReadRemoteActivationKeys();
void ReadRemoteBindingHandleCacheKeys();
void ReadSAFERKeys();
void ReadDynamicIPChangesKeys();
DWORD GetActivationFailureLoggingLevel();
//
// Class that can be used to set up notification of registry key
// changes.
//
class CRegistryWatcher { public: CRegistryWatcher(HKEY hKeyRoot, const WCHAR *wszSubKey); ~CRegistryWatcher() { Cleanup(); }
// Returns S_OK if changed, S_FALSE if not, and an error if something failed.
HRESULT Changed();
private:
void Cleanup();
HKEY _hWatchedKey; BOOL _fValid; HANDLE _hEvent; };
#endif // __REGISTRY_HXX__
|