Module: wine Branch: master Commit: 0cb350f19ce911d7be2a823e8066f36c4cec48d1 URL: https://source.winehq.org/git/wine.git/?a=commit;h=0cb350f19ce911d7be2a823e8...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Jul 7 12:29:55 2022 +0200
ntdll: Make all registry lookups case-insensitive.
Following recent Windows versions.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/ntdll/unix/registry.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/unix/registry.c b/dlls/ntdll/unix/registry.c index 428f8c9eb3c..693a594e84b 100644 --- a/dlls/ntdll/unix/registry.c +++ b/dlls/ntdll/unix/registry.c @@ -83,6 +83,7 @@ NTSTATUS WINAPI NtCreateKey( HANDLE *key, ACCESS_MASK access, const OBJECT_ATTRI if (attr->Length != sizeof(OBJECT_ATTRIBUTES)) return STATUS_INVALID_PARAMETER; if (!attr->ObjectName->Length && !attr->RootDirectory) return STATUS_OBJECT_PATH_SYNTAX_BAD; if ((ret = alloc_object_attributes( attr, &objattr, &len ))) return ret; + objattr->attributes |= OBJ_OPENIF | OBJ_CASE_INSENSITIVE;
TRACE( "(%p,%s,%s,%x,%x,%p)\n", attr->RootDirectory, debugstr_us(attr->ObjectName), debugstr_us(class), options, access, key ); @@ -133,6 +134,7 @@ NTSTATUS WINAPI NtCreateKeyTransacted( HANDLE *key, ACCESS_MASK access, const OB NTSTATUS WINAPI NtOpenKeyEx( HANDLE *key, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr, ULONG options ) { NTSTATUS ret; + ULONG attributes;
*key = 0; if (attr->Length != sizeof(*attr)) return STATUS_INVALID_PARAMETER; @@ -142,11 +144,13 @@ NTSTATUS WINAPI NtOpenKeyEx( HANDLE *key, ACCESS_MASK access, const OBJECT_ATTRI
if (options & ~REG_OPTION_OPEN_LINK) FIXME( "options %x not implemented\n", options );
+ attributes = attr->Attributes | OBJ_CASE_INSENSITIVE; + SERVER_START_REQ( open_key ) { req->parent = wine_server_obj_handle( attr->RootDirectory ); req->access = access; - req->attributes = attr->Attributes; + req->attributes = attributes; wine_server_add_data( req, attr->ObjectName->Buffer, attr->ObjectName->Length ); ret = wine_server_call( req ); *key = wine_server_ptr_handle( reply->hkey ); @@ -699,6 +703,7 @@ NTSTATUS WINAPI NtLoadKey( const OBJECT_ATTRIBUTES *attr, OBJECT_ATTRIBUTES *fil if (ret) return ret;
if ((ret = alloc_object_attributes( attr, &objattr, &len ))) return ret; + objattr->attributes |= OBJ_OPENIF | OBJ_CASE_INSENSITIVE;
SERVER_START_REQ( load_registry ) {