From 762f51cf93b6efca0defb2929f3278abb034dae7 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Mon, 9 Mar 2020 19:59:27 +0100 Subject: [PATCH] kernelbase: Use wide character string literals in the remaining files. Signed-off-by: Alexandre Julliard --- dlls/kernelbase/loader.c | 4 +--- dlls/kernelbase/main.c | 11 +++-------- dlls/kernelbase/memory.c | 10 ++-------- dlls/kernelbase/sync.c | 27 ++++++++++++--------------- dlls/kernelbase/version.c | 13 ++++--------- 5 files changed, 22 insertions(+), 43 deletions(-) diff --git a/dlls/kernelbase/loader.c b/dlls/kernelbase/loader.c index eb715ba74a7..59b775b8444 100644 --- a/dlls/kernelbase/loader.c +++ b/dlls/kernelbase/loader.c @@ -81,8 +81,6 @@ FARPROC WINAPI get_proc_address( HMODULE module, LPCSTR function ) */ static BOOL load_library_as_datafile( LPCWSTR load_path, DWORD flags, LPCWSTR name, HMODULE *mod_ret ) { - static const WCHAR dotDLL[] = {'.','d','l','l',0}; - WCHAR filenameW[MAX_PATH]; HANDLE mapping, file = INVALID_HANDLE_VALUE; HMODULE module = 0; @@ -92,7 +90,7 @@ static BOOL load_library_as_datafile( LPCWSTR load_path, DWORD flags, LPCWSTR na if (flags & LOAD_LIBRARY_AS_IMAGE_RESOURCE) protect |= SEC_IMAGE; - if (SearchPathW( NULL, name, dotDLL, ARRAY_SIZE( filenameW ), filenameW, NULL )) + if (SearchPathW( NULL, name, L".dll", ARRAY_SIZE( filenameW ), filenameW, NULL )) { file = CreateFileW( filenameW, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, 0, 0 ); diff --git a/dlls/kernelbase/main.c b/dlls/kernelbase/main.c index 1c8c83d229f..9aa64739949 100644 --- a/dlls/kernelbase/main.c +++ b/dlls/kernelbase/main.c @@ -320,12 +320,6 @@ static HRESULT lcid_to_rfc1766(LCID lcid, WCHAR *rfc1766, INT len) HRESULT WINAPI GetAcceptLanguagesW(WCHAR *langbuf, DWORD *buflen) { - static const WCHAR keyW[] = { - 'S','o','f','t','w','a','r','e','\\', - 'M','i','c','r','o','s','o','f','t','\\', - 'I','n','t','e','r','n','e','t',' ','E','x','p','l','o','r','e','r','\\', - 'I','n','t','e','r','n','a','t','i','o','n','a','l',0}; - static const WCHAR valueW[] = {'A','c','c','e','p','t','L','a','n','g','u','a','g','e',0}; DWORD mystrlen, mytype; WCHAR *mystr; LCID mylcid; @@ -342,8 +336,9 @@ HRESULT WINAPI GetAcceptLanguagesW(WCHAR *langbuf, DWORD *buflen) len = mystrlen * sizeof(WCHAR); mystr = heap_alloc(len); mystr[0] = 0; - RegOpenKeyExW(HKEY_CURRENT_USER, keyW, 0, KEY_QUERY_VALUE, &mykey); - lres = RegQueryValueExW(mykey, valueW, 0, &mytype, (PBYTE)mystr, &len); + RegOpenKeyExW(HKEY_CURRENT_USER, L"Software\\Microsoft\\Internet Explorer\\International", + 0, KEY_QUERY_VALUE, &mykey); + lres = RegQueryValueExW(mykey, L"AcceptLanguage", 0, &mytype, (PBYTE)mystr, &len); RegCloseKey(mykey); len = lstrlenW(mystr); diff --git a/dlls/kernelbase/memory.c b/dlls/kernelbase/memory.c index 1bce74a6360..1efc3b6e826 100644 --- a/dlls/kernelbase/memory.c +++ b/dlls/kernelbase/memory.c @@ -888,12 +888,6 @@ BOOL WINAPI DECLSPEC_HOTPATCH LocalUnlock( HLOCAL hmem ) */ HANDLE WINAPI DECLSPEC_HOTPATCH CreateMemoryResourceNotification( MEMORY_RESOURCE_NOTIFICATION_TYPE type ) { - static const WCHAR lowmemW[] = - {'\\','K','e','r','n','e','l','O','b','j','e','c','t','s', - '\\','L','o','w','M','e','m','o','r','y','C','o','n','d','i','t','i','o','n',0}; - static const WCHAR highmemW[] = - {'\\','K','e','r','n','e','l','O','b','j','e','c','t','s', - '\\','H','i','g','h','M','e','m','o','r','y','C','o','n','d','i','t','i','o','n',0}; HANDLE ret; UNICODE_STRING nameW; OBJECT_ATTRIBUTES attr; @@ -901,10 +895,10 @@ HANDLE WINAPI DECLSPEC_HOTPATCH CreateMemoryResourceNotification( MEMORY_RESOURC switch (type) { case LowMemoryResourceNotification: - RtlInitUnicodeString( &nameW, lowmemW ); + RtlInitUnicodeString( &nameW, L"\\KernelObjects\\LowMemoryCondition" ); break; case HighMemoryResourceNotification: - RtlInitUnicodeString( &nameW, highmemW ); + RtlInitUnicodeString( &nameW, L"\\KernelObjects\\HighMemoryCondition" ); break; default: SetLastError( ERROR_INVALID_PARAMETER ); diff --git a/dlls/kernelbase/sync.c b/dlls/kernelbase/sync.c index 0ae3aadde92..441b47ffb03 100644 --- a/dlls/kernelbase/sync.c +++ b/dlls/kernelbase/sync.c @@ -63,8 +63,6 @@ static inline LARGE_INTEGER *get_nt_timeout( LARGE_INTEGER *time, DWORD timeout NTSTATUS WINAPI BaseGetNamedObjectDirectory( HANDLE *dir ) { static HANDLE handle; - static const WCHAR basenameW[] = {'\\','S','e','s','s','i','o','n','s','\\','%','u', - '\\','B','a','s','e','N','a','m','e','d','O','b','j','e','c','t','s',0}; WCHAR buffer[64]; UNICODE_STRING str; OBJECT_ATTRIBUTES attr; @@ -74,7 +72,8 @@ NTSTATUS WINAPI BaseGetNamedObjectDirectory( HANDLE *dir ) { HANDLE dir; - swprintf( buffer, ARRAY_SIZE(buffer), basenameW, NtCurrentTeb()->Peb->SessionId ); + swprintf( buffer, ARRAY_SIZE(buffer), L"\\Sessions\\%u\\BaseNamedObjects", + NtCurrentTeb()->Peb->SessionId ); RtlInitUnicodeString( &str, buffer ); InitializeObjectAttributes(&attr, &str, 0, 0, NULL); status = NtOpenDirectoryObject( &dir, DIRECTORY_CREATE_OBJECT|DIRECTORY_TRAVERSE, &attr ); @@ -1170,10 +1169,8 @@ BOOL WINAPI DECLSPEC_HOTPATCH CreatePipe( HANDLE *read_pipe, HANDLE *write_pipe, /* generate a unique pipe name (system wide) */ for (;;) { - static const WCHAR fmtW[] = { '\\','?','?','\\','p','i','p','e','\\', - 'W','i','n','3','2','.','P','i','p','e','s','.','%','0','8','l','u','.','%','0','8','u','\0' }; - - swprintf( name, ARRAY_SIZE(name), fmtW, GetCurrentProcessId(), ++index ); + swprintf( name, ARRAY_SIZE(name), L"\\??\\pipe\\Win32.Pipes.%08lu.%08u", + GetCurrentProcessId(), ++index ); RtlInitUnicodeString( &nt_name, name ); if (!NtCreateNamedPipeFile( read_pipe, GENERIC_READ | FILE_WRITE_ATTRIBUTES | SYNCHRONIZE, &attr, &iosb, FILE_SHARE_WRITE, FILE_OVERWRITE_IF, @@ -1336,7 +1333,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH TransactNamedPipe( HANDLE handle, LPVOID write_buf */ BOOL WINAPI DECLSPEC_HOTPATCH WaitNamedPipeW( LPCWSTR name, DWORD timeout ) { - static const WCHAR leadin[] = {'\\','?','?','\\','P','I','P','E','\\'}; + static const int prefix_len = sizeof(L"\\??\\PIPE\\") - sizeof(WCHAR); NTSTATUS status; UNICODE_STRING nt_name, pipe_dev_name; FILE_PIPE_WAIT_FOR_BUFFER *pipe_wait; @@ -1350,15 +1347,15 @@ BOOL WINAPI DECLSPEC_HOTPATCH WaitNamedPipeW( LPCWSTR name, DWORD timeout ) if (!RtlDosPathNameToNtPathName_U( name, &nt_name, NULL, NULL )) return FALSE; if (nt_name.Length >= MAX_PATH * sizeof(WCHAR) || - nt_name.Length < sizeof(leadin) || - wcsnicmp( nt_name.Buffer, leadin, ARRAY_SIZE( leadin )) != 0) + nt_name.Length < prefix_len || + wcsnicmp( nt_name.Buffer, L"\\??\\PIPE\\", prefix_len / sizeof(WCHAR) )) { RtlFreeUnicodeString( &nt_name ); SetLastError( ERROR_PATH_NOT_FOUND ); return FALSE; } - wait_size = sizeof(*pipe_wait) + nt_name.Length - sizeof(leadin) - sizeof(WCHAR); + wait_size = offsetof( FILE_PIPE_WAIT_FOR_BUFFER, Name[(nt_name.Length - prefix_len) / sizeof(WCHAR)] ); if (!(pipe_wait = HeapAlloc( GetProcessHeap(), 0, wait_size))) { RtlFreeUnicodeString( &nt_name ); @@ -1367,8 +1364,8 @@ BOOL WINAPI DECLSPEC_HOTPATCH WaitNamedPipeW( LPCWSTR name, DWORD timeout ) } pipe_dev_name.Buffer = nt_name.Buffer; - pipe_dev_name.Length = sizeof(leadin); - pipe_dev_name.MaximumLength = sizeof(leadin); + pipe_dev_name.Length = prefix_len; + pipe_dev_name.MaximumLength = prefix_len; InitializeObjectAttributes( &attr,&pipe_dev_name, OBJ_CASE_INSENSITIVE, NULL, NULL ); status = NtOpenFile( &pipe_dev, FILE_READ_ATTRIBUTES | SYNCHRONIZE, &attr, &iosb, FILE_SHARE_READ | FILE_SHARE_WRITE, @@ -1386,8 +1383,8 @@ BOOL WINAPI DECLSPEC_HOTPATCH WaitNamedPipeW( LPCWSTR name, DWORD timeout ) pipe_wait->Timeout.QuadPart = ((ULONGLONG)0x7fffffff << 32) | 0xffffffff; else pipe_wait->Timeout.QuadPart = (ULONGLONG)timeout * -10000; - pipe_wait->NameLength = nt_name.Length - sizeof(leadin); - memcpy( pipe_wait->Name, nt_name.Buffer + ARRAY_SIZE( leadin ), pipe_wait->NameLength ); + pipe_wait->NameLength = nt_name.Length - prefix_len; + memcpy( pipe_wait->Name, nt_name.Buffer + prefix_len/sizeof(WCHAR), pipe_wait->NameLength ); RtlFreeUnicodeString( &nt_name ); status = NtFsControlFile( pipe_dev, NULL, NULL, NULL, &iosb, FSCTL_PIPE_WAIT, diff --git a/dlls/kernelbase/version.c b/dlls/kernelbase/version.c index 8d49e9d5038..cf46e9cc3af 100644 --- a/dlls/kernelbase/version.c +++ b/dlls/kernelbase/version.c @@ -1017,10 +1017,6 @@ BOOL WINAPI VerQueryValueA( LPCVOID pBlock, LPCSTR lpSubBlock, BOOL WINAPI VerQueryValueW( LPCVOID pBlock, LPCWSTR lpSubBlock, LPVOID *lplpBuffer, PUINT puLen ) { - static const WCHAR rootW[] = { '\\', 0 }; - static const WCHAR varfileinfoW[] = { '\\','V','a','r','F','i','l','e','I','n','f','o', - '\\','T','r','a','n','s','l','a','t','i','o','n', 0 }; - const VS_VERSION_INFO_STRUCT32 *info = pBlock; TRACE("(%p,%s,%p,%p)\n", @@ -1030,7 +1026,7 @@ BOOL WINAPI VerQueryValueW( LPCVOID pBlock, LPCWSTR lpSubBlock, return FALSE; if (!lpSubBlock || !lpSubBlock[0]) - lpSubBlock = rootW; + lpSubBlock = L"\\"; if ( VersionInfoIs16( info ) ) { @@ -1050,7 +1046,7 @@ BOOL WINAPI VerQueryValueW( LPCVOID pBlock, LPCWSTR lpSubBlock, HeapFree(GetProcessHeap(), 0, lpSubBlockA); - if (ret && wcsicmp( lpSubBlock, rootW ) && wcsicmp( lpSubBlock, varfileinfoW )) + if (ret && wcscmp( lpSubBlock, L"\\" ) && wcsicmp( lpSubBlock, L"\\VarFileInfo\\Translation" )) { /* Set lpBuffer so it points to the 'empty' area where we store * the converted strings @@ -1219,7 +1215,6 @@ DWORD WINAPI VerFindFileA( DWORD flags, LPCSTR filename, LPCSTR win_dir, LPCSTR DWORD WINAPI VerFindFileW( DWORD flags, LPCWSTR filename, LPCWSTR win_dir, LPCWSTR app_dir, LPWSTR cur_dir, PUINT curdir_len, LPWSTR dest, PUINT dest_len ) { - static const WCHAR emptyW; DWORD retval = 0; const WCHAR *curDir; const WCHAR *destDir; @@ -1231,7 +1226,7 @@ DWORD WINAPI VerFindFileW( DWORD flags, LPCWSTR filename, LPCWSTR win_dir, LPCWS /* Figure out where the file should go; shared files default to the system directory */ - curDir = &emptyW; + curDir = L""; if(flags & VFFF_ISSHAREDFILE) { @@ -1249,7 +1244,7 @@ DWORD WINAPI VerFindFileW( DWORD flags, LPCWSTR filename, LPCWSTR win_dir, LPCWS } else /* not a shared file */ { - destDir = app_dir ? app_dir : &emptyW; + destDir = app_dir ? app_dir : L""; if(filename) { if(file_existsW(destDir, filename, FALSE)) curDir = destDir;