58 ULONG cbInfoSize, cbDataSize;
62 if (cbInfoSize <=
sizeof(ajBuffer))
64 pInfo = (
PVOID)ajBuffer;
78 Status = ZwQueryValueKey(hkey,
88 cbDataSize = pInfo->DataLength;
95 else if (cbDataSize > *pcbValue)
116 *pcbValue = cbDataSize;
119 if (pInfo != (
PVOID)ajBuffer)
135 ZwSetValueKey(hkey, &ustrValue, 0,
REG_SZ, &ustrData, ustrData.
Length +
sizeof(
WCHAR));
174 ULONG cbInfoSize, cbReqSize;
184 RtlInitEmptyUnicodeString(&usKeyName, awcBuffer,
sizeof(awcBuffer));
225 if (cbInfoSize <=
sizeof(awcBuffer))
227 pInfo = (
PVOID)awcBuffer;
242 Status = ZwQueryValueKey(hkey,
251 if (pInfo->Type ==
ulType)
260 if (pInfo != (
PVOID)awcBuffer)
287 DPRINT1(
"RtlFormatCurrentUserKeyPath failed\n");
292 RtlInitEmptyUnicodeString(&usKeyName, awcBuffer,
sizeof(awcBuffer));
312 DPRINT1(
"RtlAppendUnicodeToString failed with Status=0x%lx, buf:%u,%u\n",
344 DPRINT1(
"Failed to write reg key '%S' value '%S', Status = %lx\n",
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define STATUS_INSUFFICIENT_RESOURCES
#define OBJ_CASE_INSENSITIVE
VOID NTAPI RegWriteSZ(HKEY hkey, PWSTR pwszValue, PWSTR pwszData)
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
LONG RegQueryValue(_In_ HKEY Key, _In_z_ PCWSTR ValueName, _Out_opt_ PULONG Type, _Out_opt_ PUCHAR Data, _Inout_opt_ PULONG DataSize)
static HANDLE ULONG_PTR dwData
#define _When_(expr, annos)
#define OBJ_KERNEL_HANDLE
#define STATUS_BUFFER_TOO_SMALL
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
_In_z_ PCWSTR _In_ ULONG _Post_z_ PVOID _In_ ULONG cjDataSize
_In_ ULONG _In_opt_ PVOID pvData
_Success_(return!=NULL||BufferSize==0)
NTSTATUS NTAPI RtlFormatCurrentUserKeyPath(OUT PUNICODE_STRING KeyPath)
NTSTATUS RtlAppendUnicodeToString(IN PUNICODE_STRING Str1, IN PWSTR Str2)
#define STATUS_OBJECT_TYPE_MISMATCH
#define NT_SUCCESS(StatCode)
_In_z_ PCWSTR pwszValueName
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
#define ExAllocatePoolWithTag(hernya, size, tag)
#define STATUS_BUFFER_OVERFLOW
struct _KEY_VALUE_PARTIAL_INFORMATION KEY_VALUE_PARTIAL_INFORMATION
NTSYSAPI NTSTATUS NTAPI RtlAppendUnicodeStringToString(PUNICODE_STRING Destination, PUNICODE_STRING Source)
#define FIELD_OFFSET(t, f)
_In_z_ PCWSTR _In_ ULONG ulType
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define InitializeObjectAttributes(p, n, a, r, s)
#define RtlCopyMemory(Destination, Source, Length)
BOOL NTAPI RegReadDWORD(HKEY hkey, PWSTR pwszValue, PDWORD pdwData)
#define ExFreePoolWithTag(_P, _T)
LONG RegOpenKey(_In_ HKEY ParentKey, _In_z_ PCWSTR KeyName, _Out_ PHKEY Key)
#define _PRAGMA_WARNING_SUPPRESS(x)
#define _In_reads_bytes_(size)
VOID NTAPI RegWriteDWORD(HKEY hkey, PWSTR pwszValue, DWORD dwData)
#define _Out_writes_(size)