Module: wine Branch: master Commit: 6d4cf67a56dee87180d447eae3562d35798ba75c URL: http://source.winehq.org/git/wine.git/?a=commit;h=6d4cf67a56dee87180d447eae3...
Author: Alexandre Julliard julliard@winehq.org Date: Mon Mar 1 14:02:16 2010 +0100
kernel32: Create the hardware registry keys one at a time, and bail out if the main key already exists.
---
dlls/kernel32/oldconfig.c | 19 +++++++++++++++++++ 1 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/dlls/kernel32/oldconfig.c b/dlls/kernel32/oldconfig.c index 0e8cff1..c77e7b2 100644 --- a/dlls/kernel32/oldconfig.c +++ b/dlls/kernel32/oldconfig.c @@ -90,6 +90,25 @@ static void create_scsi_entry( PSCSI_ADDRESS scsi_addr, LPCSTR lpDriver, UINT uD attr.SecurityDescriptor = NULL; attr.SecurityQualityOfService = NULL;
+ if (!RtlCreateUnicodeStringFromAsciiz( &nameW, "Machine\HARDWARE" ) || + NtCreateKey( &scsiKey, KEY_ALL_ACCESS, &attr, 0, NULL, REG_OPTION_VOLATILE, &disp )) + { + ERR("Cannot create HARDWARE registry key\n" ); + return; + } + NtClose( scsiKey ); + RtlFreeUnicodeString( &nameW ); + if (disp == REG_OPENED_EXISTING_KEY) return; + + if (!RtlCreateUnicodeStringFromAsciiz( &nameW, "Machine\HARDWARE\DEVICEMAP" ) || + NtCreateKey( &scsiKey, KEY_ALL_ACCESS, &attr, 0, NULL, REG_OPTION_VOLATILE, &disp )) + { + ERR("Cannot create DEVICEMAP registry key\n" ); + return; + } + NtClose( scsiKey ); + RtlFreeUnicodeString( &nameW ); + /* Ensure there is Scsi key */ if (!RtlCreateUnicodeStringFromAsciiz( &nameW, "Machine\HARDWARE\DEVICEMAP\Scsi" ) || NtCreateKey( &scsiKey, KEY_ALL_ACCESS, &attr, 0,