mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-27 06:48:31 +00:00
Initial import
This commit is contained in:
commit
c91b3c5006
14915 changed files with 590219 additions and 0 deletions
146
libc/nt/registry.h
Normal file
146
libc/nt/registry.h
Normal file
|
@ -0,0 +1,146 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_NT_REGISTRY_H_
|
||||
#define COSMOPOLITAN_LIBC_NT_REGISTRY_H_
|
||||
#include "libc/nt/enum/keyaccess.h"
|
||||
#include "libc/nt/enum/reggetvalueflags.h"
|
||||
#include "libc/nt/enum/regtype.h"
|
||||
#include "libc/nt/enum/securityinformation.h"
|
||||
#if 0
|
||||
/* ░░░░
|
||||
▒▒▒░░░▒▒▒▒▒▒▒▓▓▓░
|
||||
▒▒▒▒░░░▒▒▒▒▒▒▓▓▓▓▓▓░
|
||||
▒▒▒▒░░░▒▒▒▒▒▒▒▓▓▓▓▓▓ ▒▓░
|
||||
▒▒▒░░░░▒▒▒▒▒▒▓▓▓▓▓▓ ▓▓▓▓▓▓▒ ▒▒▒▓▓█
|
||||
▒▒▒▒░░░▒▒▒▒▒▒▒▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓▓
|
||||
░▒▒▒░░░░▒▒▒▒▒▒▓▓▓▓▓▓ █▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓█
|
||||
▒▒▒▒░░░▒▒▒▒▒▒▒▓▓▓▓▓░ ▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓▓
|
||||
▒▒▒▒░░░▒▒▒▒▒▒▒▓▓▓▓▓▓ ▒▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓▒
|
||||
▒▒▒▒▓▓ ▓▒▒▓▓▓▓ ▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓█
|
||||
▒▓ ▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓
|
||||
░░░░░░░░░░░▒▒▒▒ ▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓█
|
||||
▒▒░░░░░░░░░░▒▒▒▒▒▓▓▓ ▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓▓
|
||||
░▒░░░░░░░░░░░▒▒▒▒▒▓▓ ▓░ ░▓███▓
|
||||
▒▒░░░░░░░░░░▒▒▒▒▒▓▓░ ▒▓▓▓▒▒▒ ░▒▒▒▓ ████████████
|
||||
▒▒░░░░░░░░░░░▒▒▒▒▒▓▓ ▒▓▓▓▓▒▒▒▒▒▒▒▒░░░▒▒▒▒▒░ ░███
|
||||
▒░░░░░░░░░░░▒▒▒▒▒▓▓ ▓▓▓▓▒▒▒▒▒▒▒▒░░░░▒▒▒▒▓ ███
|
||||
▒▒░░░░░░░░░░▒▒▒▒▒▒▓▓ ▒▓▓▓▒▒▒▒▒▒▒▒░░░░▒▒▒▒▒ ▓██
|
||||
▒░░░░░░░░░░░▒▒▒▒▒▓▓ ▓▓▓▓▒▒▒▒▒▒▒▒░░░▒▒▒▒▒▓ ▓██
|
||||
▒▒░░░▒▒▒░░░▒▒░▒▒▒▓▓▒ ▒▓▓▓▒▒▒▒▒▒▒▒░░░░▒▒▒▒▒ ███
|
||||
░▒▓ ░▓▓▓▓▒▒▒▒▒▒▒▒░░░░▒▒▒▒▓ ▓██
|
||||
╔────────────────────────────────────────────────────────────────▀▀▀─────────│─╗
|
||||
│ cosmopolitan § new technology » registry ─╬─│┼
|
||||
╚────────────────────────────────────────────────────────────────────────────│*/
|
||||
#endif
|
||||
|
||||
#define kNtMaxKeyNameChars 255
|
||||
#define kNtMaxValueNameChars 16383
|
||||
#define kNtMaxValueBytes 0x100000
|
||||
|
||||
#define kNtHkeyClassesRoot 0x80000000l
|
||||
#define kNtHkeyCurrentUser 0x80000001l
|
||||
#define kNtHkeyLocalMachine 0x80000002l
|
||||
#define kNtHkeyUsers 0x80000003l
|
||||
#define kNtHkeyPerformanceData 0x80000004l
|
||||
#define kNtHkeyPerformanceText 0x80000050l
|
||||
#define kNtHkeyPerformanceNlstext 0x80000060l
|
||||
#define kNtHkeyCurrentConfig 0x80000005l
|
||||
#define kNtHkeyDynData 0x80000006l
|
||||
#define kNtHkeyCurrentUserLocalSettings 0x80000007l
|
||||
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
COSMOPOLITAN_C_START_
|
||||
|
||||
struct NtFileTime;
|
||||
struct NtSecurityAttributes;
|
||||
struct NtValent;
|
||||
|
||||
int RegOpenKey(int64_t hKey, const char16_t *opt_lpSubKey,
|
||||
int64_t *out_phkResult) paramsnonnull((3));
|
||||
int RegOpenKeyEx(int64_t hKey, const char16_t *opt_lpSubKey,
|
||||
uint32_t opt_ulOptions, enum NtKeyAccess samDesired,
|
||||
int64_t *out_phkResult) paramsnonnull((5));
|
||||
int RegCloseKey(int64_t hKey);
|
||||
|
||||
int RegGetValue(int64_t hkey, const char16_t *opt_lpSubKey,
|
||||
const char16_t *opt_lpValue, enum NtRegGetValueFlags dwFlags,
|
||||
enum NtRegType *opt_pdwType, void *opt_out_pvData,
|
||||
uint32_t *opt_inout_pcbDataBytes);
|
||||
int RegSetValue(int64_t hKey, const char16_t *lpSubKey, enum NtRegType dwType,
|
||||
const char16_t *lpData, uint32_t cbData);
|
||||
int RegSetValueEx(int64_t hKey, const char16_t *lpValueName, uint32_t Reserved,
|
||||
enum NtRegType dwType, const unsigned char *lpData,
|
||||
uint32_t cbData);
|
||||
|
||||
int RegQueryInfoKey(int64_t hKey, char16_t *opt_out_lpClass,
|
||||
uint32_t *opt_inout_lpClassLen, uint32_t *lpReserved,
|
||||
uint32_t *opt_out_lpcSubKeys,
|
||||
uint32_t *opt_out_lpcbMaxSubKeyBytes,
|
||||
uint32_t *opt_out_lpcbMaxClassBytes,
|
||||
uint32_t *opt_out_lpcValues,
|
||||
uint32_t *opt_out_lpcbMaxValueNameBytes,
|
||||
uint32_t *opt_out_lpcbMaxValueBytes,
|
||||
uint32_t *opt_out_lpcbSecurityDescriptorBytes,
|
||||
struct NtFileTime *opt_out_lpftLastWriteTime);
|
||||
int RegEnumKey(int64_t hKey, uint32_t dwIndex, char16_t *opt_lpName,
|
||||
uint32_t NameLen);
|
||||
int RegEnumKeyEx(int64_t hKey, uint32_t dwIndex, char16_t *out_lpName,
|
||||
uint32_t *inout_lpcchName, uint32_t *lpReserved,
|
||||
char16_t *opt_out_lpClass, uint32_t *opt_inout_lpcchClassLen,
|
||||
struct NtFileTime *opt_out_lpftLastWriteTime);
|
||||
|
||||
int RegEnumValue(int64_t hKey, uint32_t dwIndex, char16_t *lpValueName,
|
||||
uint32_t *lpValueNameLen, uint32_t *lpReserved,
|
||||
enum NtRegType *opt_out_lpType, unsigned char *opt_out_lpData,
|
||||
uint32_t *opt_inout_lpcbDataBytes);
|
||||
int RegQueryValue(int64_t hKey, const char16_t *opt_lpSubKey,
|
||||
char16_t *opt_out_lpData, int32_t *opt_inout_lpcbDataBytes);
|
||||
int RegQueryValueEx(int64_t hKey, const char16_t *opt_lpValueName,
|
||||
uint32_t *lpReserved, enum NtRegType *opt_out_lpType,
|
||||
unsigned char *opt_out_lpData,
|
||||
uint32_t *opt_inout_lpcbDataBytes);
|
||||
|
||||
int RegOverridePredefKey(int64_t hKey, int64_t hNewHKey);
|
||||
int RegOpenUserClassesRoot(void *hToken, uint32_t dwOptions,
|
||||
enum NtKeyAccess samDesired, int64_t *phkResult);
|
||||
int RegOpenCurrentUser(enum NtKeyAccess samDesired, int64_t *phkResult);
|
||||
int RegDisablePredefinedCache();
|
||||
int RegConnectRegistry(const char16_t *lpMachineName, int64_t hKey,
|
||||
int64_t *phkResult);
|
||||
int RegConnectRegistryEx(const char16_t *lpMachineName, int64_t hKey,
|
||||
uint32_t Flags, int64_t *phkResult);
|
||||
int RegCreateKey(int64_t hKey, const char16_t *lpSubKey, int64_t *phkResult);
|
||||
int RegCreateKeyEx(int64_t hKey, const char16_t *lpSubKey, uint32_t Reserved,
|
||||
int16_t *lpClass, uint32_t dwOptions,
|
||||
enum NtKeyAccess samDesired,
|
||||
struct NtSecurityAttributes *lpSecurityAttributes,
|
||||
int64_t *phkResult, uint32_t *lpdwDisposition);
|
||||
int RegDeleteKey(int64_t hKey, const char16_t *lpSubKey);
|
||||
int RegDeleteKeyEx(int64_t hKey, const char16_t *lpSubKey,
|
||||
enum NtKeyAccess samDesired, uint32_t Reserved);
|
||||
int RegDeleteTree(int64_t hKey, const char16_t *opt_lpSubKey);
|
||||
int RegDisableReflectionKey(int64_t hBase);
|
||||
int RegEnableReflectionKey(int64_t hBase);
|
||||
int RegQueryReflectionKey(int64_t hBase, bool32 *bIsReflectionDisabled);
|
||||
int RegDeleteValue(int64_t hKey, const char16_t *lpValueName);
|
||||
int RegFlushKey(int64_t hKey);
|
||||
int RegGetKeySecurity(int64_t hKey, uint32_t SecurityInformation,
|
||||
void *pSecurityDescriptor,
|
||||
uint32_t *lpcbSecurityDescriptorBytes);
|
||||
int RegLoadKey(int64_t hKey, const char16_t *lpSubKey, const char16_t *lpFile);
|
||||
int RegNotifyChangeKeyValue(int64_t hKey, bool32 bWatchSubtree,
|
||||
uint32_t dwNotifyFilter, void *hEvent,
|
||||
int fAsynchronous);
|
||||
int RegQueryMultipleValues(int64_t hKey, struct NtValent *inout_val_list,
|
||||
uint32_t num_vals, int16_t *out_lpValueBuf,
|
||||
uint32_t *inout_ldwTotsize) paramsnonnull();
|
||||
int RegReplaceKey(int64_t hKey, const char16_t *lpSubKey,
|
||||
const char16_t *lpNewFile, const char16_t *lpOldFile);
|
||||
int RegRestoreKey(int64_t hKey, const char16_t *lpFile, uint32_t dwFlags);
|
||||
int RegSaveKey(int64_t hKey, const char16_t *lpFile,
|
||||
struct NtSecurityAttributes *lpSecurityAttributes);
|
||||
int RegSetKeySecurity(int64_t hKey, uint32_t SecurityInformation,
|
||||
void *pSecurityDescriptor);
|
||||
int RegUnLoadKey(int64_t hKey, const char16_t *lpSubKey);
|
||||
|
||||
COSMOPOLITAN_C_END_
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_NT_REGISTRY_H_ */
|
Loading…
Add table
Add a link
Reference in a new issue