10#define HKEY_CLASSES_ROOT ((HKEY)(LONG_PTR)(LONG)0x80000000)
11#define HKEY_CURRENT_USER ((HKEY)(LONG_PTR)(LONG)0x80000001)
12#define HKEY_LOCAL_MACHINE ((HKEY)(LONG_PTR)(LONG)0x80000002)
13#define HKEY_USERS ((HKEY)(LONG_PTR)(LONG)0x80000003)
14#define HKEY_PERFORMANCE_DATA ((HKEY)(LONG_PTR)(LONG)0x80000004)
15#define HKEY_CURRENT_CONFIG ((HKEY)(LONG_PTR)(LONG)0x80000005)
16#define HKEY_DYN_DATA ((HKEY)(LONG_PTR)(LONG)0x80000006)
17#define HKEY_PERFORMANCE_TEXT ((HKEY)(LONG_PTR)(LONG)0x80000050)
18#define HKEY_PERFORMANCE_NLSTEXT ((HKEY)(LONG_PTR)(LONG)0x80000060)
20#define REG_OPTION_VOLATILE 1
21#define REG_OPTION_NON_VOLATILE 0
22#define REG_CREATED_NEW_KEY 1
23#define REG_OPENED_EXISTING_KEY 2
26#define REG_EXPAND_SZ 2
28#define REG_DWORD_LITTLE_ENDIAN 4
30#define REG_DWORD_BIG_ENDIAN 5
33#define REG_RESOURCE_LIST 8
34#define REG_FULL_RESOURCE_DESCRIPTOR 9
35#define REG_RESOURCE_REQUIREMENTS_LIST 10
36#define REG_QWORD_LITTLE_ENDIAN 11
38#define REG_NOTIFY_CHANGE_NAME 1
39#define REG_NOTIFY_CHANGE_ATTRIBUTES 2
40#define REG_NOTIFY_CHANGE_LAST_SET 4
41#define REG_NOTIFY_CHANGE_SECURITY 8
42#define REG_NOTIFY_THREAD_AGNOSTIC (0x10000000L)
43#define REG_MUI_STRING_TRUNCATE 1
46#define SHUTDOWN_FORCE_OTHERS 0x00000001
47#define SHUTDOWN_FORCE_SELF 0x00000002
48#define SHUTDOWN_GRACE_OVERRIDE 0x00000020
49#define SHUTDOWN_INSTALL_UPDATES 0x00000040
50#define SHUTDOWN_NOREBOOT 0x00000010
51#define SHUTDOWN_POWEROFF 0x00000008
52#define SHUTDOWN_RESTART 0x00000004
53#define SHUTDOWN_RESTARTAPPS 0x00000080
55#define MAX_SHUTDOWN_TIMEOUT (10*365*24*60*60)
57#define RRF_RT_REG_NONE (1 << 0)
58#define RRF_RT_REG_SZ (1 << 1)
59#define RRF_RT_REG_EXPAND_SZ (1 << 2)
60#define RRF_RT_REG_BINARY (1 << 3)
61#define RRF_RT_REG_DWORD (1 << 4)
62#define RRF_RT_REG_MULTI_SZ (1 << 5)
63#define RRF_RT_REG_QWORD (1 << 6)
64#define RRF_RT_DWORD (RRF_RT_REG_BINARY | RRF_RT_REG_DWORD)
65#define RRF_RT_QWORD (RRF_RT_REG_BINARY | RRF_RT_REG_QWORD)
66#define RRF_RT_ANY (0x0000FFFF)
67#if (_WIN32_WINNT >= _WIN32_WINNT_WIN10)
68#define RRF_SUBKEY_WOW6464KEY (0x00010000)
69#define RRF_SUBKEY_WOW6432KEY (0x00020000)
70#define RRF_WOW64_MASK (0x00030000)
72#define RRF_NOEXPAND (1 << 28)
73#define RRF_ZEROONFAILURE (1 << 29)
94#if (_WIN32_WINNT >= 0x0600)
107#if (_WIN32_WINNT >= 0x0600)
121#if (_WIN32_WINNT >= 0x0600)
131#if (_WIN32_WINNT >= 0x0500)
137#if (_WIN32_WINNT >= 0x0600)
207#if (_WIN32_WINNT >= 0x0600)
254#if (_WIN32_WINNT >= 0x0600)
337#if (_WIN32_WINNT >= 0x0600)
387#if (_WIN32_WINNT >= 0x0600)
454#define AbortSystemShutdown AbortSystemShutdownW
455#define InitiateSystemShutdown InitiateSystemShutdownW
456#define InitiateSystemShutdownEx InitiateSystemShutdownExW
457#define RegConnectRegistry RegConnectRegistryW
458#if (_WIN32_WINNT >= 0x0600)
459#define InitiateShutdown InitiateShutdownW
460#define RegCopyTree RegCopyTreeW
462#define RegCreateKey RegCreateKeyW
463#define RegCreateKeyEx RegCreateKeyExW
464#define RegDeleteKey RegDeleteKeyW
465#define RegDeleteKeyEx RegDeleteKeyExW
466#if (_WIN32_WINNT >= 0x0600)
467#define RegDeleteKeyValue RegDeleteKeyValueW
468#define RegDeleteTree RegDeleteTreeW
470#define RegDeleteValue RegDeleteValueW
471#define RegEnumKey RegEnumKeyW
472#define RegEnumKeyEx RegEnumKeyExW
473#define RegEnumValue RegEnumValueW
474#if (_WIN32_WINNT >= 0x0600)
475#define RegGetValue RegGetValueW
477#define RegLoadKey RegLoadKeyW
478#if (_WIN32_WINNT >= 0x0600)
479#define RegLoadMUIString RegLoadMUIStringW
481#define RegOpenKey RegOpenKeyW
482#define RegOpenKeyEx RegOpenKeyExW
483#define RegQueryInfoKey RegQueryInfoKeyW
484#define RegQueryMultipleValues RegQueryMultipleValuesW
485#define RegQueryValue RegQueryValueW
486#define RegQueryValueEx RegQueryValueExW
487#define RegReplaceKey RegReplaceKeyW
488#define RegRestoreKey RegRestoreKeyW
489#define RegSaveKey RegSaveKeyW
490#define RegSaveKeyEx RegSaveKeyExW
491#if (_WIN32_WINNT >= 0x0600)
492#define RegSetKeyValue RegSetKeyValueW
494#define RegSetValue RegSetValueW
495#define RegSetValueEx RegSetValueExW
496#define RegUnLoadKey RegUnLoadKeyW
499#define AbortSystemShutdown AbortSystemShutdownA
500#define InitiateSystemShutdown InitiateSystemShutdownA
501#define InitiateSystemShutdownEx InitiateSystemShutdownExA
502#define RegConnectRegistry RegConnectRegistryA
503#if (_WIN32_WINNT >= 0x0600)
504#define InitiateShutdown InitiateShutdownA
505#define RegCopyTree RegCopyTreeA
507#define RegCreateKey RegCreateKeyA
508#define RegCreateKeyEx RegCreateKeyExA
509#define RegDeleteKey RegDeleteKeyA
510#define RegDeleteKeyEx RegDeleteKeyExA
511#if (_WIN32_WINNT >= 0x0600)
512#define RegDeleteKeyValue RegDeleteKeyValueA
513#define RegDeleteTree RegDeleteTreeA
515#define RegDeleteValue RegDeleteValueA
516#define RegEnumKey RegEnumKeyA
517#define RegEnumKeyEx RegEnumKeyExA
518#define RegEnumValue RegEnumValueA
519#if (_WIN32_WINNT >= 0x0600)
520#define RegGetValue RegGetValueA
522#define RegLoadKey RegLoadKeyA
523#if (_WIN32_WINNT >= 0x0600)
524#define RegLoadMUIString RegLoadMUIStringA
526#define RegOpenKey RegOpenKeyA
527#define RegOpenKeyEx RegOpenKeyExA
528#define RegQueryInfoKey RegQueryInfoKeyA
529#define RegQueryMultipleValues RegQueryMultipleValuesA
530#define RegQueryValue RegQueryValueA
531#define RegQueryValueEx RegQueryValueExA
532#define RegReplaceKey RegReplaceKeyA
533#define RegRestoreKey RegRestoreKeyA
534#define RegSaveKey RegSaveKeyA
535#define RegSaveKeyEx RegSaveKeyExA
536#if (_WIN32_WINNT >= 0x0600)
537#define RegSetKeyValue RegSetKeyValueA
539#define RegSetValue RegSetValueA
540#define RegSetValueEx RegSetValueExA
541#define RegUnLoadKey RegUnLoadKeyA
#define RegCloseKey(hKey)
LSTATUS WINAPI RegCopyTreeW(_In_ HKEY, _In_opt_ LPCWSTR, _In_ HKEY)
LSTATUS WINAPI RegDeleteTreeW(_In_ HKEY, _In_opt_ LPCWSTR)
LONG RegLoadMUIStringW(IN HKEY hKey, IN LPCWSTR pszValue OPTIONAL, OUT LPWSTR pszOutBuf, IN DWORD cbOutBuf, OUT LPDWORD pcbData OPTIONAL, IN DWORD Flags, IN LPCWSTR pszDirectory OPTIONAL)
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
DWORD WINAPI InitiateShutdownA(LPSTR lpMachineName, LPSTR lpMessage, DWORD dwGracePeriod, DWORD dwShutdownFlags, DWORD dwReason)
DWORD WINAPI InitiateShutdownW(LPWSTR lpMachineName, LPWSTR lpMessage, DWORD dwGracePeriod, DWORD dwShutdownFlags, DWORD dwReason)
LSTATUS WINAPI RegGetValueW(HKEY hKey, LPCWSTR pszSubKey, LPCWSTR pszValue, DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData)
LONG WINAPI RegDeleteTreeA(IN HKEY hKey, IN LPCSTR lpSubKey OPTIONAL)
LONG WINAPI RegDisablePredefinedCacheEx(VOID)
LONG WINAPI RegQueryReflectionKey(IN HKEY hBase, OUT BOOL *bIsReflectionDisabled)
LSTATUS WINAPI RegGetValueA(HKEY hKey, LPCSTR pszSubKey, LPCSTR pszValue, DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData)
LONG WINAPI RegDisablePredefinedCache(VOID)
LONG WINAPI RegSaveKeyExA(HKEY hKey, LPCSTR lpFile, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD Flags)
LONG WINAPI RegEnableReflectionKey(IN HKEY hBase)
LONG WINAPI RegSetKeyValueA(IN HKEY hKey, IN LPCSTR lpSubKey OPTIONAL, IN LPCSTR lpValueName OPTIONAL, IN DWORD dwType, IN LPCVOID lpData OPTIONAL, IN DWORD cbData)
LONG WINAPI RegCopyTreeA(IN HKEY hKeySrc, IN LPCSTR lpSubKey OPTIONAL, IN HKEY hKeyDest)
LONG WINAPI RegLoadMUIStringA(IN HKEY hKey, IN LPCSTR pszValue OPTIONAL, OUT LPSTR pszOutBuf, IN DWORD cbOutBuf, OUT LPDWORD pcbData OPTIONAL, IN DWORD Flags, IN LPCSTR pszDirectory OPTIONAL)
LONG WINAPI RegSaveKeyExW(HKEY hKey, LPCWSTR lpFile, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD Flags)
LONG WINAPI RegDisableReflectionKey(IN HKEY hBase)
LONG WINAPI RegDeleteKeyValueW(IN HKEY hKey, IN LPCWSTR lpSubKey OPTIONAL, IN LPCWSTR lpValueName OPTIONAL)
LONG WINAPI RegDeleteKeyValueA(IN HKEY hKey, IN LPCSTR lpSubKey OPTIONAL, IN LPCSTR lpValueName OPTIONAL)
LONG WINAPI RegSetKeyValueW(IN HKEY hKey, IN LPCWSTR lpSubKey OPTIONAL, IN LPCWSTR lpValueName OPTIONAL, IN DWORD dwType, IN LPCVOID lpData OPTIONAL, IN DWORD cbData)
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION SecurityInformation
DWORD SECURITY_INFORMATION
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
_In_ LPWSTR _In_ DWORD _In_ LPCVOID pvData
#define _Out_writes_to_opt_(s, c)
#define _Out_writes_opt_(s)
#define _Return_type_success_(c)
#define _Out_writes_bytes_opt_(s)
#define _Out_writes_bytes_to_opt_(s, c)
#define _NullNull_terminated_
#define _In_reads_bytes_opt_(s)
_In_opt_ _In_opt_ _In_ _In_ DWORD cbData
_In_opt_ LPCSTR _In_opt_ LPCSTR _In_ SRRF _Out_opt_ LPDWORD pdwType
_In_ _Out_writes_opt_ pcchValueName _Inout_opt_ LPDWORD _Out_opt_ _Out_writes_bytes_to_opt_ pcbData _Inout_opt_ LPDWORD pcbData
_In_opt_ LPCSTR _In_opt_ LPCSTR pszValue
#define __out_data_source(src_sym)
_In_ PSID _Out_writes_to_opt_ cchName LPSTR _Inout_ LPDWORD cchName
_Reserved_ PVOID Reserved
_In_ DWORD _In_ int _In_ int _In_opt_ LPNLSVERSIONINFO _In_opt_ LPVOID lpReserved
LSTATUS WINAPI RegDeleteValueW(_In_ HKEY, _In_opt_ LPCWSTR)
LSTATUS WINAPI RegOpenKeyA(_In_ HKEY, _In_opt_ LPCSTR, _Out_ PHKEY)
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 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 RegDeleteKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ REGSAM samDesired, _Reserved_ DWORD Reserved)
BOOL WINAPI AbortSystemShutdownW(_In_opt_ LPCWSTR)
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 RegEnumKeyW(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_writes_opt_(cchName) LPWSTR lpName, _In_ DWORD cchName)
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)
BOOL WINAPI InitiateSystemShutdownA(_In_opt_ LPSTR, _In_opt_ LPSTR, _In_ DWORD, _In_ BOOL, _In_ BOOL)
LSTATUS WINAPI RegGetKeySecurity(_In_ HKEY hKey, _In_ SECURITY_INFORMATION SecurityInformation, _Out_writes_bytes_opt_(*lpcbSecurityDescriptor) PSECURITY_DESCRIPTOR pSecurityDescriptor, _Inout_ LPDWORD lpcbSecurityDescriptor)
LSTATUS WINAPI RegReplaceKeyW(_In_ HKEY, _In_opt_ LPCWSTR, _In_ LPCWSTR, _In_ LPCWSTR)
LSTATUS WINAPI RegOpenCurrentUser(_In_ REGSAM, _Out_ PHKEY)
LSTATUS WINAPI RegDeleteKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ REGSAM samDesired, _Reserved_ DWORD Reserved)
LSTATUS WINAPI RegFlushKey(_In_ HKEY)
BOOL WINAPI InitiateSystemShutdownW(_In_opt_ LPWSTR, _In_opt_ LPWSTR, _In_ DWORD, _In_ BOOL, _In_ BOOL)
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)
BOOL WINAPI InitiateSystemShutdownExA(_In_opt_ LPSTR, _In_opt_ LPSTR, _In_ DWORD, _In_ BOOL, _In_ BOOL, _In_ DWORD)
LSTATUS WINAPI RegOpenKeyW(_In_ HKEY, _In_opt_ LPCWSTR, _Out_ PHKEY)
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 RegCreateKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _Reserved_ DWORD Reserved, _In_opt_ LPSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ PDWORD lpdwDisposition)
LSTATUS WINAPI RegEnumKeyA(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_writes_opt_(cchName) LPSTR lpName, _In_ DWORD cchName)
LSTATUS WINAPI RegReplaceKeyA(_In_ HKEY, _In_opt_ LPCSTR, _In_ LPCSTR, _In_ LPCSTR)
LSTATUS WINAPI RegLoadKeyA(_In_ HKEY, _In_opt_ LPCSTR, _In_ LPCSTR)
LSTATUS WINAPI RegRestoreKeyW(_In_ HKEY, _In_ LPCWSTR, _In_ DWORD)
BOOL WINAPI InitiateSystemShutdownExW(_In_opt_ LPWSTR, _In_opt_ LPWSTR, _In_ DWORD, _In_ BOOL, _In_ BOOL, _In_ DWORD)
LSTATUS WINAPI RegSaveKeyA(_In_ HKEY, _In_ LPCSTR, _In_opt_ LPSECURITY_ATTRIBUTES)
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)
#define RRF_RT_REG_MULTI_SZ
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 RegRestoreKeyA(_In_ HKEY, _In_ LPCSTR, _In_ DWORD)
BOOL WINAPI AbortSystemShutdownA(_In_opt_ LPCSTR)
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 RegUnLoadKeyW(_In_ HKEY, _In_opt_ LPCWSTR)
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 RegOpenKeyExW(_In_ HKEY, _In_opt_ LPCWSTR, _In_opt_ DWORD, _In_ REGSAM, _Out_ PHKEY)
LSTATUS WINAPI RegLoadKeyW(_In_ HKEY, _In_opt_ LPCWSTR, _In_ LPCWSTR)
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)
LSTATUS WINAPI RegNotifyChangeKeyValue(_In_ HKEY, _In_ BOOL, _In_ DWORD, _In_opt_ HANDLE, _In_ BOOL)
LSTATUS WINAPI RegConnectRegistryA(_In_opt_ LPCSTR, _In_ HKEY, _Out_ PHKEY)
LSTATUS WINAPI RegDeleteValueA(_In_ HKEY, _In_opt_ LPCSTR)
#define RRF_RT_REG_EXPAND_SZ
LSTATUS WINAPI RegUnLoadKeyA(_In_ HKEY, _In_opt_ LPCSTR)
LSTATUS WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _Reserved_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ PDWORD lpdwDisposition)
struct value_entW VALENTW
LSTATUS WINAPI RegOpenKeyExA(_In_ HKEY, _In_opt_ LPCSTR, _In_opt_ DWORD, _In_ REGSAM, _Out_ PHKEY)
LSTATUS WINAPI RegDeleteKeyA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey)
LSTATUS WINAPI RegCreateKeyA(_In_ HKEY hKey, _In_opt_ LPCSTR lpSubKey, _Out_ PHKEY phkResult)
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)
struct value_entA VALENTA
struct value_entA * PVALENTA
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 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 RegDeleteKeyW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey)
LSTATUS WINAPI RegSetKeySecurity(_In_ HKEY, _In_ SECURITY_INFORMATION, _In_ PSECURITY_DESCRIPTOR)
struct value_entW * PVALENTW
LSTATUS WINAPI RegSaveKeyW(_In_ HKEY, _In_ LPCWSTR, _In_opt_ LPSECURITY_ATTRIBUTES)
LSTATUS WINAPI RegCreateKeyW(_In_ HKEY hKey, _In_opt_ LPCWSTR lpSubKey, _Out_ PHKEY phkResult)
LSTATUS WINAPI RegConnectRegistryW(_In_opt_ LPCWSTR, _In_ HKEY, _Out_ PHKEY)
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)
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)
_Must_inspect_result_ _In_ ULONG Flags