Jacek Caban : server: Store all 32 bits of value type.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Nov 12 09:58:28 CST 2015
Module: wine
Branch: master
Commit: 731d09fa9dd7b2efbf8b6a72ddd6dbe68402592f
URL: http://source.winehq.org/git/wine.git/?a=commit;h=731d09fa9dd7b2efbf8b6a72ddd6dbe68402592f
Author: Jacek Caban <jacek at codeweavers.com>
Date: Thu Nov 12 14:26:25 2015 +0100
server: Store all 32 bits of value type.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ntdll/tests/reg.c | 14 ++++++++++++--
server/registry.c | 2 +-
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/dlls/ntdll/tests/reg.c b/dlls/ntdll/tests/reg.c
index dfec007..96f190b 100644
--- a/dlls/ntdll/tests/reg.c
+++ b/dlls/ntdll/tests/reg.c
@@ -530,14 +530,14 @@ static void test_NtQueryValueKey(void)
OBJECT_ATTRIBUTES attr;
UNICODE_STRING ValName;
KEY_VALUE_BASIC_INFORMATION *basic_info;
- KEY_VALUE_PARTIAL_INFORMATION *partial_info;
+ KEY_VALUE_PARTIAL_INFORMATION *partial_info, pi;
KEY_VALUE_FULL_INFORMATION *full_info;
DWORD len, expected;
pRtlCreateUnicodeStringFromAsciiz(&ValName, "deletetest");
InitializeObjectAttributes(&attr, &winetestpath, 0, 0, 0);
- status = pNtOpenKey(&key, KEY_READ, &attr);
+ status = pNtOpenKey(&key, KEY_READ|KEY_SET_VALUE, &attr);
ok(status == STATUS_SUCCESS, "NtOpenKey Failed: 0x%08x\n", status);
len = FIELD_OFFSET(KEY_VALUE_BASIC_INFORMATION, Name[0]);
@@ -632,8 +632,18 @@ static void test_NtQueryValueKey(void)
ok(len == expected, "NtQueryValueKey wrong len %u\n", len);
HeapFree(GetProcessHeap(), 0, partial_info);
+ pRtlFreeUnicodeString(&ValName);
+ pRtlCreateUnicodeStringFromAsciiz(&ValName, "custtest");
+ status = pNtSetValueKey(key, &ValName, 0, 0xff00ff00, NULL, 0);
+ ok(status == STATUS_SUCCESS, "NtSetValueKey Failed: 0x%08x\n", status);
+
+ status = pNtQueryValueKey(key, &ValName, KeyValuePartialInformation, &pi, sizeof(pi), &len);
+ ok(status == STATUS_SUCCESS, "NtQueryValueKey should have returned STATUS_BUFFER_TOO_SMALL instead of 0x%08x\n", status);
+ ok(pi.Type == 0xff00ff00, "Type=%x\n", pi.Type);
+ ok(pi.DataLength == 0, "DataLength=%u\n", pi.DataLength);
pRtlFreeUnicodeString(&ValName);
+
pNtClose(key);
}
diff --git a/server/registry.c b/server/registry.c
index dad86e7..c95e103 100644
--- a/server/registry.c
+++ b/server/registry.c
@@ -93,7 +93,7 @@ struct key_value
{
WCHAR *name; /* value name */
unsigned short namelen; /* length of value name */
- unsigned short type; /* value type */
+ unsigned int type; /* value type */
data_size_t len; /* value data length in bytes */
void *data; /* pointer to value data */
};
More information about the wine-cvs
mailing list