Author: akhaldi Date: Fri Mar 1 18:18:36 2013 New Revision: 58388
URL: http://svn.reactos.org/svn/reactos?rev=58388&view=rev Log: [PSDK] * Annotate winreg.h.
Modified: trunk/reactos/include/psdk/winreg.h
Modified: trunk/reactos/include/psdk/winreg.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/winreg.h?rev=5... ============================================================================== --- trunk/reactos/include/psdk/winreg.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/winreg.h [iso-8859-1] Fri Mar 1 18:18:36 2013 @@ -62,7 +62,7 @@
#ifndef RC_INVOKED typedef ACCESS_MASK REGSAM; -typedef LONG LSTATUS; +typedef _Return_type_success_(return==ERROR_SUCCESS) LONG LSTATUS; typedef struct value_entA { LPSTR ve_valuename; DWORD ve_valuelen; @@ -75,103 +75,367 @@ DWORD ve_valueptr; DWORD ve_type; } VALENTW,*PVALENTW; -BOOL WINAPI AbortSystemShutdownA(LPCSTR); -BOOL WINAPI AbortSystemShutdownW(LPCWSTR); -#if (_WIN32_WINNT >= 0x0600) -DWORD WINAPI InitiateShutdownA(LPSTR, LPSTR, DWORD, DWORD, DWORD); -DWORD WINAPI InitiateShutdownW(LPWSTR, LPWSTR, DWORD, DWORD, DWORD); -#endif -BOOL WINAPI InitiateSystemShutdownA(LPSTR,LPSTR,DWORD,BOOL,BOOL); -BOOL WINAPI InitiateSystemShutdownW(LPWSTR,LPWSTR,DWORD,BOOL,BOOL); -BOOL WINAPI InitiateSystemShutdownExA(LPSTR,LPSTR,DWORD,BOOL,BOOL,DWORD); -BOOL WINAPI InitiateSystemShutdownExW(LPWSTR,LPWSTR,DWORD,BOOL,BOOL,DWORD); -LONG WINAPI RegCloseKey(HKEY); -LONG WINAPI RegConnectRegistryA(LPCSTR,HKEY,PHKEY); -LONG WINAPI RegConnectRegistryW(LPCWSTR,HKEY,PHKEY); -#if (_WIN32_WINNT >= 0x0600) -LONG WINAPI RegCopyTreeA(HKEY,LPCSTR,HKEY); -LONG WINAPI RegCopyTreeW(HKEY,LPCWSTR,HKEY); -#endif -LONG WINAPI RegCreateKeyA(HKEY,LPCSTR,PHKEY); -LONG WINAPI RegCreateKeyExA(HKEY,LPCSTR,DWORD,LPSTR,DWORD,REGSAM,LPSECURITY_ATTRIBUTES,PHKEY,PDWORD); -LONG WINAPI RegCreateKeyExW(HKEY,LPCWSTR,DWORD,LPWSTR,DWORD,REGSAM,LPSECURITY_ATTRIBUTES,PHKEY,PDWORD); -LONG WINAPI RegCreateKeyW(HKEY,LPCWSTR,PHKEY); -LONG WINAPI RegDeleteKeyA(HKEY,LPCSTR); -LONG WINAPI RegDeleteKeyExA (HKEY,LPCSTR,REGSAM,DWORD); -LONG WINAPI RegDeleteKeyExW (HKEY,LPCWSTR,REGSAM,DWORD); -#if (_WIN32_WINNT >= 0x0600) -LONG WINAPI RegDeleteKeyValueA(HKEY,LPCSTR,LPCSTR); -LONG WINAPI RegDeleteKeyValueW(HKEY,LPCWSTR,LPCWSTR); -#endif -LONG WINAPI RegDeleteKeyW(HKEY,LPCWSTR); -#if (_WIN32_WINNT >= 0x0600) -LONG WINAPI RegDeleteTreeA(HKEY,LPCSTR); -LONG WINAPI RegDeleteTreeW(HKEY,LPCWSTR); -#endif -LONG WINAPI RegDeleteValueA(HKEY,LPCSTR); -LONG WINAPI RegDeleteValueW(HKEY,LPCWSTR); + +BOOL WINAPI AbortSystemShutdownA(_In_opt_ LPCSTR); +BOOL WINAPI AbortSystemShutdownW(_In_opt_ LPCWSTR); + +#if (_WIN32_WINNT >= 0x0600) +DWORD WINAPI InitiateShutdownA(_In_opt_ LPSTR, _In_opt_ LPSTR, _In_ DWORD, _In_ DWORD, _In_ DWORD); +DWORD WINAPI InitiateShutdownW(_In_opt_ LPWSTR, _In_opt_ LPWSTR, _In_ DWORD, _In_ DWORD, _In_ DWORD); +#endif + +BOOL WINAPI InitiateSystemShutdownA(_In_opt_ LPSTR, _In_opt_ LPSTR, _In_ DWORD, _In_ BOOL, _In_ BOOL); +BOOL WINAPI InitiateSystemShutdownW(_In_opt_ LPWSTR, _In_opt_ LPWSTR, _In_ DWORD, _In_ BOOL, _In_ BOOL); +BOOL WINAPI InitiateSystemShutdownExA(_In_opt_ LPSTR, _In_opt_ LPSTR, _In_ DWORD, _In_ BOOL, _In_ BOOL, _In_ DWORD); +BOOL WINAPI InitiateSystemShutdownExW(_In_opt_ LPWSTR, _In_opt_ LPWSTR, _In_ DWORD, _In_ BOOL, _In_ BOOL, _In_ DWORD); +LSTATUS WINAPI RegCloseKey(_In_ HKEY); +LSTATUS WINAPI RegConnectRegistryA(_In_opt_ LPCSTR, _In_ HKEY, _Out_ PHKEY); +LSTATUS WINAPI RegConnectRegistryW(_In_opt_ LPCWSTR,_In_ HKEY, _Out_ PHKEY); + +#if (_WIN32_WINNT >= 0x0600) +LSTATUS WINAPI RegCopyTreeA(_In_ HKEY, _In_opt_ LPCSTR, _In_ HKEY); +LSTATUS WINAPI RegCopyTreeW(_In_ HKEY, _In_opt_ LPCWSTR, _In_ HKEY); +#endif + +LSTATUS WINAPI RegCreateKeyA(_In_ HKEY, _In_opt_ LPCSTR, _Out_ PHKEY); +LSTATUS WINAPI RegCreateKeyW(_In_ HKEY, _In_opt_ LPCWSTR, _Out_ PHKEY); +LSTATUS WINAPI RegCreateKeyExA(_In_ HKEY, _In_ LPCSTR, _Reserved_ DWORD, _In_opt_ LPSTR, _In_ DWORD, _In_ REGSAM, _In_opt_ LPSECURITY_ATTRIBUTES, _Out_ PHKEY, _Out_opt_ PDWORD); +LSTATUS WINAPI RegCreateKeyExW(_In_ HKEY, _In_ LPCWSTR, _Reserved_ DWORD, _In_opt_ LPWSTR, _In_ DWORD, _In_ REGSAM, _In_opt_ LPSECURITY_ATTRIBUTES, _Out_ PHKEY, _Out_opt_ PDWORD); +LSTATUS WINAPI RegDeleteKeyA(_In_ HKEY, _In_ LPCSTR); +LSTATUS WINAPI RegDeleteKeyW(_In_ HKEY, _In_ LPCWSTR); +LSTATUS WINAPI RegDeleteKeyExA(_In_ HKEY, _In_ LPCSTR, _In_ REGSAM, _Reserved_ DWORD); +LSTATUS WINAPI RegDeleteKeyExW(_In_ HKEY, _In_ LPCWSTR, _In_ REGSAM, _Reserved_ DWORD); + +#if (_WIN32_WINNT >= 0x0600) +LSTATUS WINAPI RegDeleteKeyValueA(_In_ HKEY, _In_opt_ LPCSTR, _In_opt_ LPCSTR); +LSTATUS WINAPI RegDeleteKeyValueW(_In_ HKEY, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR); +LSTATUS WINAPI RegDeleteTreeA(_In_ HKEY, _In_opt_ LPCSTR); +LSTATUS WINAPI RegDeleteTreeW(_In_ HKEY, _In_opt_ LPCWSTR); +#endif + +LSTATUS WINAPI RegDeleteValueA(_In_ HKEY, _In_opt_ LPCSTR); +LSTATUS WINAPI RegDeleteValueW(_In_ HKEY, _In_opt_ LPCWSTR); + #if (_WIN32_WINNT >= 0x0500) LONG WINAPI RegDisablePredefinedCache(VOID); -LONG WINAPI RegSaveKeyExA(HKEY,LPCSTR,LPSECURITY_ATTRIBUTES,DWORD); -LONG WINAPI RegSaveKeyExW(HKEY,LPCWSTR,LPSECURITY_ATTRIBUTES,DWORD); -#endif +LSTATUS WINAPI RegSaveKeyExA(_In_ HKEY, _In_ LPCSTR, _In_opt_ LPSECURITY_ATTRIBUTES, _In_ DWORD); +LSTATUS WINAPI RegSaveKeyExW(_In_ HKEY, _In_ LPCWSTR, _In_opt_ LPSECURITY_ATTRIBUTES, _In_ DWORD); +#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); -LONG WINAPI RegEnumKeyExA(HKEY,DWORD,LPSTR,PDWORD,PDWORD,LPSTR,PDWORD,PFILETIME); -LONG WINAPI RegEnumKeyExW(HKEY,DWORD,LPWSTR,PDWORD,PDWORD,LPWSTR,PDWORD,PFILETIME); -LONG WINAPI RegEnumValueA(HKEY,DWORD,LPSTR,PDWORD,PDWORD,PDWORD,LPBYTE,PDWORD); -LONG WINAPI RegEnumValueW(HKEY,DWORD,LPWSTR,PDWORD,PDWORD,PDWORD,LPBYTE,PDWORD); -#if (_WIN32_WINNT >= 0x0600) -LONG WINAPI RegGetValueA(HKEY,LPCSTR,LPCSTR,DWORD,LPDWORD,PVOID,LPDWORD); -LONG WINAPI RegGetValueW(HKEY,LPCWSTR,LPCWSTR,DWORD,LPDWORD,PVOID,LPDWORD); -#endif -LONG WINAPI RegFlushKey(HKEY); -LONG WINAPI RegGetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,PDWORD); -LONG WINAPI RegLoadKeyA(HKEY,LPCSTR,LPCSTR); -LONG WINAPI RegLoadKeyW(HKEY,LPCWSTR,LPCWSTR); -#if (_WIN32_WINNT >= 0x0600) -LONG WINAPI RegLoadMUIStringA(HKEY,LPCSTR,LPSTR,DWORD,LPDWORD,DWORD,LPCSTR); -LONG WINAPI RegLoadMUIStringW(HKEY,LPCWSTR,LPWSTR,DWORD,LPDWORD,DWORD,LPCWSTR); -#endif -LONG WINAPI RegNotifyChangeKeyValue(HKEY,BOOL,DWORD,HANDLE,BOOL); -LONG WINAPI RegOpenCurrentUser(REGSAM,PHKEY); -LONG WINAPI RegOpenKeyA(HKEY,LPCSTR,PHKEY); -LONG WINAPI RegOpenKeyExA(HKEY,LPCSTR,DWORD,REGSAM,PHKEY); -LONG WINAPI RegOpenKeyExW(HKEY,LPCWSTR,DWORD,REGSAM,PHKEY); -LONG WINAPI RegOpenKeyW(HKEY,LPCWSTR,PHKEY); -LONG WINAPI RegQueryInfoKeyA(HKEY,LPSTR,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 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); -LONG WINAPI RegQueryValueW(HKEY,LPCWSTR,LPWSTR,PLONG); -LONG WINAPI RegReplaceKeyA(HKEY,LPCSTR,LPCSTR,LPCSTR); -LONG WINAPI RegReplaceKeyW(HKEY,LPCWSTR,LPCWSTR,LPCWSTR); -LONG WINAPI RegRestoreKeyA(HKEY,LPCSTR,DWORD); -LONG WINAPI RegRestoreKeyW(HKEY,LPCWSTR,DWORD); -LONG WINAPI RegSaveKeyA(HKEY,LPCSTR,LPSECURITY_ATTRIBUTES); -LONG WINAPI RegSaveKeyW(HKEY,LPCWSTR,LPSECURITY_ATTRIBUTES); -LONG WINAPI RegSetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR); -#if (_WIN32_WINNT >= 0x0600) -LONG WINAPI RegSetKeyValueA(HKEY,LPCSTR,LPCSTR,DWORD,LPCVOID,DWORD); -LONG WINAPI RegSetKeyValueW(HKEY,LPCWSTR,LPCWSTR,DWORD,LPCVOID,DWORD); -#endif -LONG WINAPI RegSetValueA(HKEY,LPCSTR,DWORD,LPCSTR,DWORD); -LONG WINAPI RegSetValueExA(HKEY,LPCSTR,DWORD,DWORD,const BYTE*,DWORD); -LONG WINAPI RegSetValueExW(HKEY,LPCWSTR,DWORD,DWORD,const BYTE*,DWORD); -LONG WINAPI RegSetValueW(HKEY,LPCWSTR,DWORD,LPCWSTR,DWORD); -LONG WINAPI RegUnLoadKeyA(HKEY,LPCSTR); -LONG WINAPI RegUnLoadKeyW(HKEY,LPCWSTR); +LONG WINAPI RegDisableReflectionKey(_In_ HKEY); +LONG WINAPI RegEnableReflectionKey(_In_ HKEY); +#endif + +LSTATUS +WINAPI +RegEnumKeyA( + _In_ HKEY hKey, + _In_ DWORD dwIndex, + _Out_writes_opt_(cchName) LPSTR lpName, + _In_ DWORD cchName); + +LSTATUS +WINAPI +RegEnumKeyW( + _In_ HKEY hKey, + _In_ DWORD dwIndex, + _Out_writes_opt_(cchName) LPWSTR lpName, + _In_ DWORD cchName); + +LSTATUS +WINAPI +RegEnumKeyExA( + _In_ HKEY hKey, + _In_ DWORD dwIndex, + _Out_writes_to_opt_(*lpcchName, *lpcchName + 1) LPSTR lpName, + _Inout_ LPDWORD lpcchName, + _Reserved_ LPDWORD lpReserved, + _Out_writes_to_opt_(*lpcchClass,*lpcchClass + 1) LPSTR lpClass, + _Inout_opt_ LPDWORD lpcchClass, + _Out_opt_ PFILETIME lpftLastWriteTime); + +LSTATUS +WINAPI +RegEnumKeyExW( + _In_ HKEY hKey, + _In_ DWORD dwIndex, + _Out_writes_to_opt_(*lpcchName, *lpcchName + 1) LPWSTR lpName, + _Inout_ LPDWORD lpcchName, + _Reserved_ LPDWORD lpReserved, + _Out_writes_to_opt_(*lpcchClass,*lpcchClass + 1) LPWSTR lpClass, + _Inout_opt_ LPDWORD lpcchClass, + _Out_opt_ PFILETIME lpftLastWriteTime); + +LSTATUS +WINAPI +RegEnumValueA( + _In_ HKEY hKey, + _In_ DWORD dwIndex, + _Out_writes_to_opt_(*lpcchValueName, *lpcchValueName + 1) LPSTR lpValueName, + _Inout_ LPDWORD lpcchValueName, + _Reserved_ LPDWORD lpReserved, + _Out_opt_ LPDWORD lpType, + _Out_writes_bytes_to_opt_(*lpcbData, *lpcbData) __out_data_source(REGISTRY) LPBYTE lpData, + _Inout_opt_ LPDWORD lpcbData); + +LSTATUS +WINAPI +RegEnumValueW( + _In_ HKEY hKey, + _In_ DWORD dwIndex, + _Out_writes_to_opt_(*lpcchValueName, *lpcchValueName + 1) LPWSTR lpValueName, + _Inout_ LPDWORD lpcchValueName, + _Reserved_ LPDWORD lpReserved, + _Out_opt_ LPDWORD lpType, + _Out_writes_bytes_to_opt_(*lpcbData, *lpcbData) __out_data_source(REGISTRY) LPBYTE lpData, + _Inout_opt_ LPDWORD lpcbData); + +#if (_WIN32_WINNT >= 0x0600) + +LSTATUS +WINAPI +RegGetValueA( + _In_ HKEY hkey, + _In_opt_ LPCSTR lpSubKey, + _In_opt_ LPCSTR lpValue, + _In_ DWORD dwFlags, + _Out_opt_ LPDWORD pdwType, + _When_((dwFlags & 0x7F) == RRF_RT_REG_SZ || (dwFlags & 0x7F) == RRF_RT_REG_EXPAND_SZ || + (dwFlags & 0x7F) == (RRF_RT_REG_SZ | RRF_RT_REG_EXPAND_SZ) || *pdwType == REG_SZ || + *pdwType == REG_EXPAND_SZ, _Post_z_) + _When_((dwFlags & 0x7F) == RRF_RT_REG_MULTI_SZ || *pdwType == REG_MULTI_SZ, _Post_ _NullNull_terminated_) + _Out_writes_bytes_to_opt_(*pcbData,*pcbData) PVOID pvData, + _Inout_opt_ LPDWORD pcbData); + +LSTATUS +WINAPI +RegGetValueW( + _In_ HKEY hkey, + _In_opt_ LPCWSTR lpSubKey, + _In_opt_ LPCWSTR lpValue, + _In_ DWORD dwFlags, + _Out_opt_ LPDWORD pdwType, + _When_((dwFlags & 0x7F) == RRF_RT_REG_SZ || (dwFlags & 0x7F) == RRF_RT_REG_EXPAND_SZ || + (dwFlags & 0x7F) == (RRF_RT_REG_SZ | RRF_RT_REG_EXPAND_SZ) || *pdwType == REG_SZ || + *pdwType == REG_EXPAND_SZ, _Post_z_) + _When_((dwFlags & 0x7F) == RRF_RT_REG_MULTI_SZ || *pdwType == REG_MULTI_SZ, _Post_ _NullNull_terminated_) + _Out_writes_bytes_to_opt_(*pcbData,*pcbData) PVOID pvData, + _Inout_opt_ LPDWORD pcbData); + +#endif + +LSTATUS WINAPI RegFlushKey(_In_ HKEY); + +LSTATUS +WINAPI +RegGetKeySecurity( + _In_ HKEY hKey, + _In_ SECURITY_INFORMATION SecurityInformation, + _Out_writes_bytes_opt_(*lpcbSecurityDescriptor) PSECURITY_DESCRIPTOR pSecurityDescriptor, + _Inout_ LPDWORD lpcbSecurityDescriptor); + +LSTATUS WINAPI RegLoadKeyA(_In_ HKEY, _In_opt_ LPCSTR, _In_ LPCSTR); +LSTATUS WINAPI RegLoadKeyW(_In_ HKEY, _In_opt_ LPCWSTR, _In_ LPCWSTR); + +#if (_WIN32_WINNT >= 0x0600) + +LSTATUS +WINAPI +RegLoadMUIStringA( + _In_ HKEY hKey, + _In_opt_ LPCSTR pszValue, + _Out_writes_bytes_opt_(cbOutBuf) LPSTR pszOutBuf, + _In_ DWORD cbOutBuf, + _Out_opt_ LPDWORD pcbData, + _In_ DWORD Flags, + _In_opt_ LPCSTR pszDirectory); + +LSTATUS +WINAPI +RegLoadMUIStringW( + _In_ HKEY hKey, + _In_opt_ LPCWSTR pszValue, + _Out_writes_bytes_opt_(cbOutBuf) LPWSTR pszOutBuf, + _In_ DWORD cbOutBuf, + _Out_opt_ LPDWORD pcbData, + _In_ DWORD Flags, + _In_opt_ LPCWSTR pszDirectory); + +#endif + +LSTATUS WINAPI RegNotifyChangeKeyValue(_In_ HKEY, _In_ BOOL, _In_ DWORD, _In_opt_ HANDLE, _In_ BOOL); +LSTATUS WINAPI RegOpenCurrentUser(_In_ REGSAM, _Out_ PHKEY); +LSTATUS WINAPI RegOpenKeyA(_In_ HKEY, _In_opt_ LPCSTR, _Out_ PHKEY); +LSTATUS WINAPI RegOpenKeyW(_In_ HKEY, _In_opt_ LPCWSTR, _Out_ PHKEY); +LSTATUS WINAPI RegOpenKeyExA(_In_ HKEY, _In_opt_ LPCSTR, _In_opt_ DWORD, _In_ REGSAM, _Out_ PHKEY); +LSTATUS WINAPI RegOpenKeyExW(_In_ HKEY, _In_opt_ LPCWSTR, _In_opt_ DWORD, _In_ REGSAM, _Out_ PHKEY); + +LSTATUS +WINAPI +RegQueryInfoKeyA( + _In_ HKEY hKey, + _Out_writes_to_opt_(*lpcchClass, *lpcchClass + 1) LPSTR lpClass, + _Inout_opt_ LPDWORD lpcchClass, + _Reserved_ LPDWORD lpReserved, + _Out_opt_ LPDWORD lpcSubKeys, + _Out_opt_ LPDWORD lpcbMaxSubKeyLen, + _Out_opt_ LPDWORD lpcbMaxClassLen, + _Out_opt_ LPDWORD lpcValues, + _Out_opt_ LPDWORD lpcbMaxValueNameLen, + _Out_opt_ LPDWORD lpcbMaxValueLen, + _Out_opt_ LPDWORD lpcbSecurityDescriptor, + _Out_opt_ PFILETIME lpftLastWriteTime); + +LSTATUS +WINAPI +RegQueryInfoKeyW( + _In_ HKEY hKey, + _Out_writes_to_opt_(*lpcchClass, *lpcchClass + 1) LPWSTR lpClass, + _Inout_opt_ LPDWORD lpcchClass, + _Reserved_ LPDWORD lpReserved, + _Out_opt_ LPDWORD lpcSubKeys, + _Out_opt_ LPDWORD lpcbMaxSubKeyLen, + _Out_opt_ LPDWORD lpcbMaxClassLen, + _Out_opt_ LPDWORD lpcValues, + _Out_opt_ LPDWORD lpcbMaxValueNameLen, + _Out_opt_ LPDWORD lpcbMaxValueLen, + _Out_opt_ LPDWORD lpcbSecurityDescriptor, + _Out_opt_ PFILETIME lpftLastWriteTime); + +LSTATUS +WINAPI +RegQueryMultipleValuesA( + _In_ HKEY hKey, + _Out_writes_(num_vals) PVALENTA val_list, + _In_ DWORD num_vals, + _Out_writes_bytes_to_opt_(*ldwTotsize, *ldwTotsize) __out_data_source(REGISTRY) LPSTR lpValueBuf, + _Inout_opt_ LPDWORD ldwTotsize); + +LSTATUS +WINAPI +RegQueryMultipleValuesW( + _In_ HKEY hKey, + _Out_writes_(num_vals) PVALENTW val_list, + _In_ DWORD num_vals, + _Out_writes_bytes_to_opt_(*ldwTotsize, *ldwTotsize) __out_data_source(REGISTRY) LPWSTR lpValueBuf, + _Inout_opt_ LPDWORD ldwTotsize); + +#if (_WIN32_WINNT >= 0x0600) +LONG WINAPI RegQueryReflectionKey(_In_ HKEY, _Out_ BOOL*); +#endif + +LSTATUS +WINAPI +RegQueryValueA( + _In_ HKEY hKey, + _In_opt_ LPCSTR lpSubKey, + _Out_writes_bytes_to_opt_(*lpcbData, *lpcbData) __out_data_source(REGISTRY) LPSTR lpData, + _Inout_opt_ PLONG lpcbData); + +LSTATUS +WINAPI +RegQueryValueW( + _In_ HKEY hKey, + _In_opt_ LPCWSTR lpSubKey, + _Out_writes_bytes_to_opt_(*lpcbData, *lpcbData) __out_data_source(REGISTRY) LPWSTR lpData, + _Inout_opt_ PLONG lpcbData); + +LSTATUS +WINAPI +RegQueryValueExA( + _In_ HKEY hKey, + _In_opt_ LPCSTR lpValueName, + _Reserved_ LPDWORD lpReserved, + _Out_opt_ LPDWORD lpType, + _Out_writes_bytes_to_opt_(*lpcbData, *lpcbData) __out_data_source(REGISTRY) LPBYTE lpData, + _When_(lpData == NULL, _Out_opt_) + _When_(lpData != NULL, _Inout_opt_) LPDWORD lpcbData); + +LSTATUS +WINAPI +RegQueryValueExW( + _In_ HKEY hKey, + _In_opt_ LPCWSTR lpValueName, + _Reserved_ LPDWORD lpReserved, + _Out_opt_ LPDWORD lpType, + _Out_writes_bytes_to_opt_(*lpcbData, *lpcbData) __out_data_source(REGISTRY) LPBYTE lpData, + _When_(lpData == NULL, _Out_opt_) + _When_(lpData != NULL, _Inout_opt_) LPDWORD lpcbData); + +LSTATUS WINAPI RegReplaceKeyA(_In_ HKEY, _In_opt_ LPCSTR, _In_ LPCSTR, _In_ LPCSTR); +LSTATUS WINAPI RegReplaceKeyW(_In_ HKEY, _In_opt_ LPCWSTR, _In_ LPCWSTR, _In_ LPCWSTR); +LSTATUS WINAPI RegRestoreKeyA(_In_ HKEY, _In_ LPCSTR, _In_ DWORD); +LSTATUS WINAPI RegRestoreKeyW(_In_ HKEY, _In_ LPCWSTR, _In_ DWORD); +LSTATUS WINAPI RegSaveKeyA(_In_ HKEY, _In_ LPCSTR, _In_opt_ LPSECURITY_ATTRIBUTES); +LSTATUS WINAPI RegSaveKeyW(_In_ HKEY, _In_ LPCWSTR, _In_opt_ LPSECURITY_ATTRIBUTES); +LSTATUS WINAPI RegSetKeySecurity(_In_ HKEY, _In_ SECURITY_INFORMATION, _In_ PSECURITY_DESCRIPTOR); + +#if (_WIN32_WINNT >= 0x0600) + +LSTATUS +WINAPI +RegSetKeyValueA( + _In_ HKEY hKey, + _In_opt_ LPCSTR lpSubKey, + _In_opt_ LPCSTR lpValueName, + _In_ DWORD dwType, + _In_reads_bytes_opt_(cbData) LPCVOID lpData, + _In_ DWORD cbData); + +LSTATUS +WINAPI +RegSetKeyValueW( + _In_ HKEY hKey, + _In_opt_ LPCWSTR lpSubKey, + _In_opt_ LPCWSTR lpValueName, + _In_ DWORD dwType, + _In_reads_bytes_opt_(cbData) LPCVOID lpData, + _In_ DWORD cbData); + +#endif + +LSTATUS +WINAPI +RegSetValueA( + _In_ HKEY hKey, + _In_opt_ LPCSTR lpSubKey, + _In_ DWORD dwType, + _In_reads_bytes_opt_(cbData) LPCSTR lpData, + _In_ DWORD cbData); + +LSTATUS +WINAPI +RegSetValueW( + _In_ HKEY hKey, + _In_opt_ LPCWSTR lpSubKey, + _In_ DWORD dwType, + _In_reads_bytes_opt_(cbData) LPCWSTR lpData, + _In_ DWORD cbData); + +LSTATUS +WINAPI +RegSetValueExA( + _In_ HKEY hKey, + _In_opt_ LPCSTR lpValueName, + _Reserved_ DWORD Reserved, + _In_ DWORD dwType, + _In_reads_bytes_opt_(cbData) const BYTE *lpData, + _In_ DWORD cbData); + +LSTATUS +WINAPI +RegSetValueExW( + _In_ HKEY hKey, + _In_opt_ LPCWSTR lpValueName, + _Reserved_ DWORD Reserved, + _In_ DWORD dwType, + _In_reads_bytes_opt_(cbData) const BYTE *lpData, + _In_ DWORD cbData); + +LSTATUS WINAPI RegUnLoadKeyA(_In_ HKEY, _In_opt_ LPCSTR); +LSTATUS WINAPI RegUnLoadKeyW(_In_ HKEY, _In_opt_ LPCWSTR);
#ifdef UNICODE typedef VALENTW VALENT,*PVALENT;