Author: hpoussin
Date: Thu May 24 01:40:46 2007
New Revision: 26876
URL:
http://svn.reactos.org/svn/reactos?rev=26876&view=rev
Log:
Specify W suffix when possible
Don't allocate unneeded memory in SetupDiCreateDeviceInfoListExW
Replace strings by array of WCHARs
Modified:
trunk/reactos/dll/win32/setupapi/devclass.c
trunk/reactos/dll/win32/setupapi/devinst.c
trunk/reactos/dll/win32/setupapi/driver.c
trunk/reactos/dll/win32/setupapi/install.c
trunk/reactos/dll/win32/setupapi/misc.c
trunk/reactos/dll/win32/setupapi/parser.c
trunk/reactos/dll/win32/setupapi/queue.c
Modified: trunk/reactos/dll/win32/setupapi/devclass.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/setupapi/devclas…
==============================================================================
--- trunk/reactos/dll/win32/setupapi/devclass.c (original)
+++ trunk/reactos/dll/win32/setupapi/devclass.c Thu May 24 01:40:46 2007
@@ -30,6 +30,7 @@
static const WCHAR ClassInstall32[] =
{'C','l','a','s','s','I','n','s','t','a','l','l','3','2',0};
static const WCHAR DotServices[] =
{'.','S','e','r','v','i','c','e','s',0};
static const WCHAR InterfaceInstall32[] =
{'I','n','t','e','r','f','a','c','e','I','n','s','t','a','l','l','3','2',0};
+static const WCHAR SetupapiDll[] =
{'s','e','t','u','p','a','p','i','.','d','l','l',0};
static const WCHAR Version[] =
{'V','e','r','s','i','o','n',0};
typedef BOOL
@@ -633,7 +634,7 @@
if (RequiredSize)
*RequiredSize = dwLength / sizeof(WCHAR) + 1;
- if (ClassNameSize * sizeof(WCHAR) >= dwLength + sizeof(UNICODE_STRING))
+ if (ClassNameSize * sizeof(WCHAR) >= dwLength + sizeof(UNICODE_NULL))
{
if (ClassNameSize > sizeof(UNICODE_NULL))
ClassName[ClassNameSize / sizeof(WCHAR)] = UNICODE_NULL;
@@ -835,7 +836,7 @@
if (RequiredSize)
*RequiredSize = dwLength / sizeof(WCHAR) + 1;
- if (ClassDescriptionSize * sizeof(WCHAR) >= dwLength + sizeof(UNICODE_STRING))
+ if (ClassDescriptionSize * sizeof(WCHAR) >= dwLength + sizeof(UNICODE_NULL))
{
if (ClassDescriptionSize > sizeof(UNICODE_NULL))
ClassDescription[ClassDescriptionSize / sizeof(WCHAR)] = UNICODE_NULL;
@@ -1597,7 +1598,7 @@
else
{
/* Look up icon in setupapi.dll */
- DllName = L"setupapi.dll";
+ DllName = SetupapiDll;
iconIndex = -iconIndex;
}
Modified: trunk/reactos/dll/win32/setupapi/devinst.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/setupapi/devinst…
==============================================================================
--- trunk/reactos/dll/win32/setupapi/devinst.c (original)
+++ trunk/reactos/dll/win32/setupapi/devinst.c Thu May 24 01:40:46 2007
@@ -27,10 +27,13 @@
static const WCHAR BackSlash[] = {'\\',0};
static const WCHAR ClassGUID[] =
{'C','l','a','s','s','G','U','I','D',0};
static const WCHAR Class[] =
{'C','l','a','s','s',0};
+static const WCHAR DateFormat[] =
{'%','u','-','%','u','-','%','u',0};
static const WCHAR DotCoInstallers[] =
{'.','C','o','I','n','s','t','a','l','l','e','r','s',0};
static const WCHAR DotHW[] = {'.','H','W',0};
static const WCHAR DotServices[] =
{'.','S','e','r','v','i','c','e','s',0};
static const WCHAR InfDirectory[] =
{'i','n','f','\\',0};
+static const WCHAR InstanceKeyFormat[] =
{'%','0','4','l','u',0};
+static const WCHAR VersionFormat[] =
{'%','u','.','%','u','.','%','u','.','%','u',0};
static const WCHAR REGSTR_DRIVER_DATE[] =
{'D','r','i','v','e','r','D','a','t','e',0};
static const WCHAR REGSTR_DRIVER_DATE_DATA[] =
{'D','r','i','v','e','r','D','a','t','e','D','a','t','a',0};
@@ -170,7 +173,6 @@
IN PVOID Reserved)
{
struct DeviceInfoSet *list;
- LPWSTR UNCServerName = NULL;
DWORD size;
DWORD rc;
CONFIGRET cr;
@@ -206,15 +208,7 @@
SetLastError(rc);
goto cleanup;
}
- UNCServerName = MyMalloc((strlenW(MachineName) + 3) * sizeof(WCHAR));
- if (!UNCServerName)
- {
- SetLastError(ERROR_NOT_ENOUGH_MEMORY);
- goto cleanup;
- }
-
- UNCServerName[0] = UNCServerName[1] = '\\';
- strcpyW(UNCServerName + 2, MachineName);
+
list->szData[0] = list->szData[1] = '\\';
strcpyW(list->szData + 2, MachineName);
list->MachineName = list->szData;
@@ -224,7 +218,7 @@
list->HKLM = HKEY_LOCAL_MACHINE;
list->MachineName = NULL;
}
- cr = CM_Connect_MachineW(UNCServerName, &list->hMachine);
+ cr = CM_Connect_MachineW(list->MachineName, &list->hMachine);
if (cr != CR_SUCCESS)
{
SetLastError(GetErrorCodeFromCrCode(cr));
@@ -245,7 +239,6 @@
MyFree(list);
}
}
- MyFree(UNCServerName);
return ret;
}
@@ -733,7 +726,7 @@
OSVERSIONINFOEX VersionInfo;
SYSTEM_INFO SystemInfo;
VersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
- ret = GetVersionEx((POSVERSIONINFO)&VersionInfo);
+ ret = GetVersionExW((OSVERSIONINFO*)&VersionInfo);
if (!ret)
goto done;
GetSystemInfo(&SystemInfo);
@@ -1540,7 +1533,7 @@
}
if (CanHandle & CLASS_COINSTALLER)
{
- rc = RegOpenKeyEx(
+ rc = RegOpenKeyExW(
HKEY_LOCAL_MACHINE,
REGSTR_PATH_CODEVICEINSTALLERS,
0, /* Options */
@@ -2139,7 +2132,7 @@
else
{
WCHAR subKey[5];
- snprintfW(subKey, 4, L"%04lu", HwProfile);
+ snprintfW(subKey, 4, InstanceKeyFormat, HwProfile);
subKey[4] = '\0';
rc = RegOpenKeyExW(
hHWProfilesKey,
@@ -2266,7 +2259,7 @@
if (UuidToStringW((UUID*)&DeviceInfoData->ClassGuid,
&lpGuidString) != RPC_S_OK)
goto cleanup;
/* The driver key is in \System\CurrentControlSet\Control\Class\{GUID}\Index
*/
- DriverKey = HeapAlloc(GetProcessHeap(), 0, (strlenW(lpGuidString) + 7) *
sizeof(WCHAR) + sizeof(UNICODE_STRING));
+ DriverKey = HeapAlloc(GetProcessHeap(), 0, (strlenW(lpGuidString) + 7) *
sizeof(WCHAR) + sizeof(UNICODE_NULL));
if (!DriverKey)
{
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
@@ -2274,8 +2267,9 @@
}
DriverKey[0] = '{';
strcpyW(&DriverKey[1], lpGuidString);
- strcatW(DriverKey, L"}\\");
pDeviceInstance = &DriverKey[strlenW(DriverKey)];
+ *pDeviceInstance++ = '}';
+ *pDeviceInstance++ = '\\';
rc = RegOpenKeyExW(RootKey,
REGSTR_PATH_CLASS_NT,
0,
@@ -2292,8 +2286,8 @@
while (Index <= 9999)
{
DWORD Disposition;
- wsprintf(pDeviceInstance, L"%04lu", Index);
- rc = RegCreateKeyEx(hClassKey,
+ sprintfW(pDeviceInstance, InstanceKeyFormat, Index);
+ rc = RegCreateKeyExW(hClassKey,
DriverKey,
0,
NULL,
@@ -2328,7 +2322,7 @@
hDeviceKey = SetupDiOpenDevRegKey(DeviceInfoSet, DeviceInfoData, Scope,
HwProfile, DIREG_DEV, KEY_SET_VALUE);
if (hDeviceKey == INVALID_HANDLE_VALUE)
goto cleanup;
- rc = RegSetValueEx(hDeviceKey, REGSTR_VAL_DRIVER, 0, REG_SZ, (const BYTE
*)DriverKey, (strlenW(DriverKey) + 1) * sizeof(WCHAR));
+ rc = RegSetValueExW(hDeviceKey, REGSTR_VAL_DRIVER, 0, REG_SZ, (const BYTE
*)DriverKey, (strlenW(DriverKey) + 1) * sizeof(WCHAR));
if (rc != ERROR_SUCCESS)
{
SetLastError(rc);
@@ -2883,7 +2877,7 @@
/* Return the current hardware profile id, or -1 if error */
static DWORD
-GetCurrentHwProfile(
+SETUPAPI_GetCurrentHwProfile(
IN HDEVINFO DeviceInfoSet)
{
HKEY hKey = NULL;
@@ -3032,7 +3026,7 @@
dwConfigFlags &= ~(PropChange->Scope == DICS_FLAG_GLOBAL ?
CONFIGFLAG_DISABLED : CSCONFIGFLAG_DISABLED);
else
dwConfigFlags |= (PropChange->Scope == DICS_FLAG_GLOBAL ?
CONFIGFLAG_DISABLED : CSCONFIGFLAG_DISABLED);
- rc = RegSetValueEx(
+ rc = RegSetValueExW(
hKey,
RegistryValueName,
0,
@@ -3047,7 +3041,7 @@
/* Enable/disable device if needed */
if (PropChange->Scope == DICS_FLAG_GLOBAL
|| PropChange->HwProfile == 0
- || PropChange->HwProfile == GetCurrentHwProfile(DeviceInfoSet))
+ || PropChange->HwProfile ==
SETUPAPI_GetCurrentHwProfile(DeviceInfoSet))
{
if (PropChange->StateChange == DICS_ENABLE)
ret = ResetDevice(DeviceInfoSet, DeviceInfoData);
@@ -3169,7 +3163,7 @@
Result = SetupInstallFromInfSectionW(InstallParams.hwndParent,
SelectedDriver->InfFileDetails->hInf, SectionName,
DoAction, hKey, SelectedDriver->InfFileDetails->DirectoryName,
SP_COPY_NEWER,
- SetupDefaultQueueCallback, Context,
+ SetupDefaultQueueCallbackW, Context,
DeviceInfoSet, DeviceInfoData);
if (!Result)
goto cleanup;
@@ -3415,7 +3409,7 @@
Result = SetupInstallFromInfSectionW(InstallParams.hwndParent,
SelectedDriver->InfFileDetails->hInf, SectionName,
DoAction, hKey, SelectedDriver->InfFileDetails->DirectoryName,
SP_COPY_NEWER,
- SetupDefaultQueueCallback, Context,
+ SetupDefaultQueueCallbackW, Context,
DeviceInfoSet, DeviceInfoData);
if (!Result)
goto cleanup;
@@ -3434,27 +3428,27 @@
TRACE("InfSectionExt : '%s'\n",
debugstr_w(&SectionName[strlenW(SelectedDriver->Details.SectionName)]));
TRACE("MatchingDeviceId: '%s'\n",
debugstr_w(SelectedDriver->MatchingId));
TRACE("ProviderName : '%s'\n",
debugstr_w(SelectedDriver->Info.ProviderName));
- sprintfW(Buffer, L"%u-%u-%u", DriverDate.wMonth, DriverDate.wDay,
DriverDate.wYear);
- rc = RegSetValueEx(hKey, REGSTR_DRIVER_DATE, 0, REG_SZ, (const BYTE *)Buffer,
(strlenW(Buffer) + 1) * sizeof(WCHAR));
+ sprintfW(Buffer, DateFormat, DriverDate.wMonth, DriverDate.wDay, DriverDate.wYear);
+ rc = RegSetValueExW(hKey, REGSTR_DRIVER_DATE, 0, REG_SZ, (const BYTE *)Buffer,
(strlenW(Buffer) + 1) * sizeof(WCHAR));
if (rc == ERROR_SUCCESS)
- rc = RegSetValueEx(hKey, REGSTR_DRIVER_DATE_DATA, 0, REG_BINARY, (const BYTE
*)&SelectedDriver->Info.DriverDate, sizeof(FILETIME));
+ rc = RegSetValueExW(hKey, REGSTR_DRIVER_DATE_DATA, 0, REG_BINARY, (const BYTE
*)&SelectedDriver->Info.DriverDate, sizeof(FILETIME));
if (rc == ERROR_SUCCESS)
- rc = RegSetValueEx(hKey, REGSTR_VAL_DRVDESC, 0, REG_SZ, (const BYTE
*)SelectedDriver->Info.Description, (strlenW(SelectedDriver->Info.Description) + 1)
* sizeof(WCHAR));
+ rc = RegSetValueExW(hKey, REGSTR_VAL_DRVDESC, 0, REG_SZ, (const BYTE
*)SelectedDriver->Info.Description, (strlenW(SelectedDriver->Info.Description) + 1)
* sizeof(WCHAR));
if (rc == ERROR_SUCCESS)
{
- sprintfW(Buffer, L"%u.%u.%u.%u", fullVersion.HighPart >> 16,
fullVersion.HighPart & 0xffff, fullVersion.LowPart >> 16, fullVersion.LowPart
& 0xffff);
- rc = RegSetValueEx(hKey, REGSTR_DRIVER_VERSION, 0, REG_SZ, (const BYTE *)Buffer,
(strlenW(Buffer) + 1) * sizeof(WCHAR));
+ sprintfW(Buffer, VersionFormat, fullVersion.HighPart >> 16,
fullVersion.HighPart & 0xffff, fullVersion.LowPart >> 16, fullVersion.LowPart
& 0xffff);
+ rc = RegSetValueExW(hKey, REGSTR_DRIVER_VERSION, 0, REG_SZ, (const BYTE *)Buffer,
(strlenW(Buffer) + 1) * sizeof(WCHAR));
}
if (rc == ERROR_SUCCESS)
- rc = RegSetValueEx(hKey, REGSTR_VAL_INFPATH, 0, REG_SZ, (const BYTE
*)SelectedDriver->InfFileDetails->FileName,
(strlenW(SelectedDriver->InfFileDetails->FileName) + 1) * sizeof(WCHAR));
+ rc = RegSetValueExW(hKey, REGSTR_VAL_INFPATH, 0, REG_SZ, (const BYTE
*)SelectedDriver->InfFileDetails->FileName,
(strlenW(SelectedDriver->InfFileDetails->FileName) + 1) * sizeof(WCHAR));
if (rc == ERROR_SUCCESS)
- rc = RegSetValueEx(hKey, REGSTR_VAL_INFSECTION, 0, REG_SZ, (const BYTE
*)SelectedDriver->Details.SectionName, (strlenW(SelectedDriver->Details.SectionName)
+ 1) * sizeof(WCHAR));
+ rc = RegSetValueExW(hKey, REGSTR_VAL_INFSECTION, 0, REG_SZ, (const BYTE
*)SelectedDriver->Details.SectionName, (strlenW(SelectedDriver->Details.SectionName)
+ 1) * sizeof(WCHAR));
if (rc == ERROR_SUCCESS)
- rc = RegSetValueEx(hKey, REGSTR_VAL_INFSECTIONEXT, 0, REG_SZ, (const BYTE
*)&SectionName[strlenW(SelectedDriver->Details.SectionName)], (strlenW(SectionName)
- strlenW(SelectedDriver->Details.SectionName) + 1) * sizeof(WCHAR));
+ rc = RegSetValueExW(hKey, REGSTR_VAL_INFSECTIONEXT, 0, REG_SZ, (const BYTE
*)&SectionName[strlenW(SelectedDriver->Details.SectionName)], (strlenW(SectionName)
- strlenW(SelectedDriver->Details.SectionName) + 1) * sizeof(WCHAR));
if (rc == ERROR_SUCCESS)
- rc = RegSetValueEx(hKey, REGSTR_VAL_MATCHINGDEVID, 0, REG_SZ, (const BYTE
*)SelectedDriver->MatchingId, (strlenW(SelectedDriver->MatchingId) + 1) *
sizeof(WCHAR));
+ rc = RegSetValueExW(hKey, REGSTR_VAL_MATCHINGDEVID, 0, REG_SZ, (const BYTE
*)SelectedDriver->MatchingId, (strlenW(SelectedDriver->MatchingId) + 1) *
sizeof(WCHAR));
if (rc == ERROR_SUCCESS)
- rc = RegSetValueEx(hKey, REGSTR_VAL_PROVIDER_NAME, 0, REG_SZ, (const BYTE
*)SelectedDriver->Info.ProviderName, (strlenW(SelectedDriver->Info.ProviderName) +
1) * sizeof(WCHAR));
+ rc = RegSetValueExW(hKey, REGSTR_VAL_PROVIDER_NAME, 0, REG_SZ, (const BYTE
*)SelectedDriver->Info.ProviderName, (strlenW(SelectedDriver->Info.ProviderName) +
1) * sizeof(WCHAR));
if (rc != ERROR_SUCCESS)
{
SetLastError(rc);
@@ -3504,13 +3498,13 @@
TRACE("ClassGUID : '%s'\n", debugstr_w(lpFullGuidString));
TRACE("DeviceDesc : '%s'\n",
debugstr_w(SelectedDriver->Info.Description));
TRACE("Mfg : '%s'\n",
debugstr_w(SelectedDriver->Info.MfgName));
- rc = RegSetValueEx(hKey, REGSTR_VAL_CLASS, 0, REG_SZ, (const BYTE *)ClassName,
(strlenW(ClassName) + 1) * sizeof(WCHAR));
+ rc = RegSetValueExW(hKey, REGSTR_VAL_CLASS, 0, REG_SZ, (const BYTE *)ClassName,
(strlenW(ClassName) + 1) * sizeof(WCHAR));
if (rc == ERROR_SUCCESS)
- rc = RegSetValueEx(hKey, REGSTR_VAL_CLASSGUID, 0, REG_SZ, (const BYTE
*)lpFullGuidString, (strlenW(lpFullGuidString) + 1) * sizeof(WCHAR));
+ rc = RegSetValueExW(hKey, REGSTR_VAL_CLASSGUID, 0, REG_SZ, (const BYTE
*)lpFullGuidString, (strlenW(lpFullGuidString) + 1) * sizeof(WCHAR));
if (rc == ERROR_SUCCESS)
- rc = RegSetValueEx(hKey, REGSTR_VAL_DEVDESC, 0, REG_SZ, (const BYTE
*)SelectedDriver->Info.Description, (strlenW(SelectedDriver->Info.Description) + 1)
* sizeof(WCHAR));
+ rc = RegSetValueExW(hKey, REGSTR_VAL_DEVDESC, 0, REG_SZ, (const BYTE
*)SelectedDriver->Info.Description, (strlenW(SelectedDriver->Info.Description) + 1)
* sizeof(WCHAR));
if (rc == ERROR_SUCCESS)
- rc = RegSetValueEx(hKey, REGSTR_VAL_MFG, 0, REG_SZ, (const BYTE
*)SelectedDriver->Info.MfgName, (strlenW(SelectedDriver->Info.MfgName) + 1) *
sizeof(WCHAR));
+ rc = RegSetValueExW(hKey, REGSTR_VAL_MFG, 0, REG_SZ, (const BYTE
*)SelectedDriver->Info.MfgName, (strlenW(SelectedDriver->Info.MfgName) + 1) *
sizeof(WCHAR));
if (rc != ERROR_SUCCESS)
{
SetLastError(rc);
Modified: trunk/reactos/dll/win32/setupapi/driver.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/setupapi/driver.…
==============================================================================
--- trunk/reactos/dll/win32/setupapi/driver.c (original)
+++ trunk/reactos/dll/win32/setupapi/driver.c Thu May 24 01:40:46 2007
@@ -138,15 +138,15 @@
driverInfo->Params.cbSize = sizeof(SP_DRVINSTALL_PARAMS);
driverInfo->Params.Reserved = (ULONG_PTR)driverInfo;
- driverInfo->Details.cbSize = sizeof(SP_DRVINFO_DETAIL_DATA);
+ driverInfo->Details.cbSize = sizeof(SP_DRVINFO_DETAIL_DATA_W);
driverInfo->Details.Reserved = (ULONG_PTR)driverInfo;
/* Copy InfFileName field */
- strncpyW(driverInfo->Details.InfFileName, InfFile, MAX_PATH - 1);
+ lstrcpynW(driverInfo->Details.InfFileName, InfFile, MAX_PATH - 1);
driverInfo->Details.InfFileName[MAX_PATH - 1] = '\0';
/* Fill InfDate field */
- hFile = CreateFile(
+ hFile = CreateFileW(
InfFile,
GENERIC_READ, FILE_SHARE_READ,
NULL, OPEN_EXISTING, 0, NULL);
@@ -157,13 +157,13 @@
goto cleanup;
/* Fill SectionName field */
- strncpyW(driverInfo->Details.SectionName, SectionName, LINE_LEN);
+ lstrcpynW(driverInfo->Details.SectionName, SectionName, LINE_LEN);
pDot = strchrW(driverInfo->Details.SectionName, '.');
if (pDot)
*pDot = UNICODE_NULL;
/* Fill DrvDescription field */
- strncpyW(driverInfo->Details.DrvDescription, DriverDescription, LINE_LEN);
+ lstrcpynW(driverInfo->Details.DrvDescription, DriverDescription, LINE_LEN);
/* Copy MatchingId information */
if (MatchingId)
@@ -188,13 +188,13 @@
memcpy(&driverInfo->ClassGuid, ClassGuid, sizeof(GUID));
driverInfo->Info.DriverType = DriverType;
driverInfo->Info.Reserved = (ULONG_PTR)driverInfo;
- strncpyW(driverInfo->Info.Description, driverInfo->Details.DrvDescription,
LINE_LEN - 1);
+ lstrcpynW(driverInfo->Info.Description, driverInfo->Details.DrvDescription,
LINE_LEN - 1);
driverInfo->Info.Description[LINE_LEN - 1] = '\0';
- strncpyW(driverInfo->Info.MfgName, ManufacturerName, LINE_LEN - 1);
+ lstrcpynW(driverInfo->Info.MfgName, ManufacturerName, LINE_LEN - 1);
driverInfo->Info.MfgName[LINE_LEN - 1] = '\0';
if (ProviderName)
{
- strncpyW(driverInfo->Info.ProviderName, ProviderName, LINE_LEN - 1);
+ lstrcpynW(driverInfo->Info.ProviderName, ProviderName, LINE_LEN - 1);
driverInfo->Info.ProviderName[LINE_LEN - 1] = '\0';
}
else
@@ -2152,7 +2152,7 @@
Context = SetupInitDefaultQueueCallback(InstallParams.hwndParent);
if (!Context)
goto cleanup;
- InstallMsgHandler = SetupDefaultQueueCallback;
+ InstallMsgHandler = SetupDefaultQueueCallbackW;
InstallMsgHandlerContext = Context;
}
ret = SetupInstallFromInfSectionW(InstallParams.hwndParent,
Modified: trunk/reactos/dll/win32/setupapi/install.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/setupapi/install…
==============================================================================
--- trunk/reactos/dll/win32/setupapi/install.c (original)
+++ trunk/reactos/dll/win32/setupapi/install.c Thu May 24 01:40:46 2007
@@ -25,7 +25,20 @@
/* Unicode constants */
static const WCHAR BackSlash[] = {'\\',0};
+static const WCHAR GroupOrderListKey[] =
{'S','Y','S','T','E','M','\\','C','u','r','r','e','n','t','C','o','n','t','r','o','l','S','e','t','\\','C','o','n','t','r','o','l','\\','G','r','o','u','p','O','r','d','e','r','L','i','s','t',0};
static const WCHAR InfDirectory[] =
{'i','n','f','\\',0};
+static const WCHAR OemFileMask[] =
{'o','e','m','*','.','i','n','f',0};
+static const WCHAR OemFileSpecification[] =
{'o','e','m','%','l','u','.','i','n','f',0};
+
+static const WCHAR DependenciesKey[] =
{'D','e','p','e','n','d','e','n','c','i','e','s',0};
+static const WCHAR DescriptionKey[] =
{'D','e','s','c','r','i','p','t','i','o','n',0};
+static const WCHAR DisplayNameKey[] =
{'D','i','s','p','l','a','y','N','a','m','e',0};
+static const WCHAR ErrorControlKey[] =
{'E','r','r','o','r','C','o','n','t','r','o','l',0};
+static const WCHAR LoadOrderGroupKey[] =
{'L','o','a','d','O','r','d','e','r','G','r','o','u','p',0};
+static const WCHAR SecurityKey[] =
{'S','e','c','u','r','i','t','y',0};
+static const WCHAR ServiceBinaryKey[] =
{'S','e','r','v','i','c','e','B','i','n','a','r','y',0};
+static const WCHAR ServiceTypeKey[] =
{'S','e','r','v','i','c','e','T','y','p','e',0};
+static const WCHAR StartTypeKey[] =
{'S','t','a','r','t','T','y','p','e',0};
/* info passed to callback functions dealing with files */
struct files_callback_info
@@ -90,6 +103,9 @@
static const WCHAR Include[] =
{'I','n','c','l','u','d','e',0};
static const WCHAR Needs[] =
{'N','e','e','d','s',0};
static const WCHAR DotSecurity[] =
{'.','S','e','c','u','r','i','t','y',0};
+#ifdef __WINESRC__
+static const WCHAR WineFakeDlls[] =
{'W','i','n','e','F','a','k','e','D','l','l','s',0};
+#endif
/***********************************************************************
@@ -411,7 +427,7 @@
MyFree(security_key);
if (ok)
{
- if (!SetupGetLineText( &security_context, NULL, NULL, NULL, NULL, 0,
&required ))
+ if (!SetupGetLineTextW( &security_context, NULL, NULL, NULL, NULL, 0,
&required ))
return FALSE;
security_descriptor = MyMalloc( required * sizeof(WCHAR) );
if (!security_descriptor)
@@ -419,7 +435,7 @@
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
return FALSE;
}
- if (!SetupGetLineText( &security_context, NULL, NULL, NULL,
security_descriptor, required, NULL ))
+ if (!SetupGetLineTextW( &security_context, NULL, NULL, NULL,
security_descriptor, required, NULL ))
return FALSE;
ok = ConvertStringSecurityDescriptorToSecurityDescriptorW( security_descriptor,
SDDL_REVISION_1, &sd, NULL );
MyFree( security_descriptor );
@@ -1306,7 +1322,7 @@
SC_HANDLE hSCManager = NULL;
SC_HANDLE hService = NULL;
LPDWORD GroupOrder = NULL;
- LPQUERY_SERVICE_CONFIG ServiceConfig = NULL;
+ LPQUERY_SERVICE_CONFIGW ServiceConfig = NULL;
BOOL ret = FALSE;
HKEY hGroupOrderListKey = NULL;
@@ -1322,11 +1338,11 @@
DWORD tagId = (DWORD)-1;
BOOL useTag;
- if (!GetIntField(hInf, ServiceSection, L"ServiceType", &ServiceType))
+ if (!GetIntField(hInf, ServiceSection, ServiceTypeKey, &ServiceType))
goto cleanup;
- if (!GetIntField(hInf, ServiceSection, L"StartType", &StartType))
+ if (!GetIntField(hInf, ServiceSection, StartTypeKey, &StartType))
goto cleanup;
- if (!GetIntField(hInf, ServiceSection, L"ErrorControl",
&ErrorControl))
+ if (!GetIntField(hInf, ServiceSection, ErrorControlKey, &ErrorControl))
goto cleanup;
useTag = (ServiceType == SERVICE_BOOT_START || ServiceType == SERVICE_SYSTEM_START);
@@ -1334,15 +1350,15 @@
if (hSCManager == NULL)
goto cleanup;
- if (!GetLineText(hInf, ServiceSection, L"ServiceBinary",
&ServiceBinary))
+ if (!GetLineText(hInf, ServiceSection, ServiceBinaryKey, &ServiceBinary))
goto cleanup;
/* Don't check return value, as these fields are optional and
* GetLineText initialize output parameter even on failure */
- GetLineText(hInf, ServiceSection, L"LoadOrderGroup", &LoadOrderGroup);
- GetLineText(hInf, ServiceSection, L"DisplayName", &DisplayName);
- GetLineText(hInf, ServiceSection, L"Description", &Description);
- GetLineText(hInf, ServiceSection, L"Dependencies", &Dependencies);
+ GetLineText(hInf, ServiceSection, LoadOrderGroupKey, &LoadOrderGroup);
+ GetLineText(hInf, ServiceSection, DisplayNameKey, &DisplayName);
+ GetLineText(hInf, ServiceSection, DescriptionKey, &Description);
+ GetLineText(hInf, ServiceSection, DependenciesKey, &Dependencies);
hService = OpenServiceW(
hSCManager,
@@ -1413,7 +1429,7 @@
}
/* Set security */
- if (GetLineText(hInf, ServiceSection, L"Security",
&SecurityDescriptor))
+ if (GetLineText(hInf, ServiceSection, SecurityKey, &SecurityDescriptor))
{
ret = ConvertStringSecurityDescriptorToSecurityDescriptorW(SecurityDescriptor,
SDDL_REVISION_1, &sd, NULL);
if (!ret)
@@ -1436,9 +1452,9 @@
if ((ServiceFlags & SPSVCINST_NOCLOBBER_LOADORDERGROUP) &&
ServiceConfig && ServiceConfig->lpLoadOrderGroup)
lpLoadOrderGroup = ServiceConfig->lpLoadOrderGroup;
- rc = RegOpenKey(
+ rc = RegOpenKeyW(
list ? list->HKLM : HKEY_LOCAL_MACHINE,
- L"SYSTEM\\CurrentControlSet\\Control\\GroupOrderList",
+ GroupOrderListKey,
&hGroupOrderListKey);
if (rc != ERROR_SUCCESS)
{
@@ -1809,7 +1825,7 @@
strcatW(pFullFileName, BackSlash);
strcatW(pFullFileName, InfDirectory);
pFileName = &pFullFileName[strlenW(pFullFileName)];
- sprintfW(pFileName, L"oem*.inf", NextFreeNumber);
+ sprintfW(pFileName, OemFileMask, NextFreeNumber);
hSearch = FindFirstFileW(pFullFileName, &FindFileData);
if (hSearch == INVALID_HANDLE_VALUE)
{
@@ -1821,12 +1837,12 @@
do
{
DWORD CurrentNumber;
- if (swscanf(FindFileData.cFileName, L"oem%lu.inf",
&CurrentNumber) == 1
+ if (swscanf(FindFileData.cFileName, OemFileSpecification,
&CurrentNumber) == 1
&& CurrentNumber <= 99999)
{
NextFreeNumber = CurrentNumber + 1;
}
- } while (FindNextFile(hSearch, &FindFileData));
+ } while (FindNextFileW(hSearch, &FindFileData));
}
if (NextFreeNumber > 99999)
@@ -1837,7 +1853,7 @@
}
/* Create the full path: %WINDIR%\Inf\OEM{XXXXX}.inf */
- sprintfW(pFileName, L"oem%lu.inf", NextFreeNumber);
+ sprintfW(pFileName, OemFileSpecification, NextFreeNumber);
TRACE("Next available file is %s\n", debugstr_w(pFileName));
if (RequiredSize)
Modified: trunk/reactos/dll/win32/setupapi/misc.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/setupapi/misc.c?…
==============================================================================
--- trunk/reactos/dll/win32/setupapi/misc.c (original)
+++ trunk/reactos/dll/win32/setupapi/misc.c Thu May 24 01:40:46 2007
@@ -21,6 +21,10 @@
#include "setupapi_private.h"
WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
+
+/* Unicode constants */
+static const WCHAR BackSlash[] = {'\\',0};
+static const WCHAR TranslationRegKey[] =
{'\\','V','e','r','F','i','l','e','I','n','f','o','\\','T','r','a','n','s','l','a','t','i','o','n',0};
DWORD
GetFunctionPointer(
@@ -1190,7 +1194,7 @@
return FALSE;
}
- if (!VerQueryValueW(lpInfo, L"\\",
+ if (!VerQueryValueW(lpInfo, BackSlash,
(LPVOID*)&lpFixedInfo, &uSize))
{
MyFree(lpInfo);
@@ -1201,7 +1205,7 @@
lpFileVersion->HighPart = lpFixedInfo->dwFileVersionMS;
*lpVersionVarSize = 0;
- if (!VerQueryValueW(lpInfo, L"\\VerFileInfo\\Translation",
+ if (!VerQueryValueW(lpInfo, TranslationRegKey,
(LPVOID*)&lpVarSize, &uSize))
{
MyFree(lpInfo);
Modified: trunk/reactos/dll/win32/setupapi/parser.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/setupapi/parser.…
==============================================================================
--- trunk/reactos/dll/win32/setupapi/parser.c (original)
+++ trunk/reactos/dll/win32/setupapi/parser.c Thu May 24 01:40:46 2007
@@ -25,6 +25,8 @@
/* Unicode constants */
static const WCHAR BackSlash[] = {'\\',0};
+static const WCHAR Class[] =
{'C','l','a','s','s',0};
+static const WCHAR ClassGUID[] =
{'C','l','a','s','s','G','U','I','D',0};
static const WCHAR InfDirectory[] =
{'i','n','f','\\',0};
static const WCHAR InfFileSpecification[] =
{'*','.','i','n','f',0};
@@ -1073,7 +1075,7 @@
static BOOL
-GetInfClassW(
+PARSER_GetInfClassW(
IN HINF hInf,
OUT LPGUID ClassGuid,
OUT PWSTR ClassName,
@@ -1085,14 +1087,14 @@
BOOL ret = FALSE;
/* Read class Guid */
- if (!SetupGetLineTextW(NULL, hInf, L"Version", L"ClassGUID",
guidW, sizeof(guidW), NULL))
+ if (!SetupGetLineTextW(NULL, hInf, Version, ClassGUID, guidW, sizeof(guidW), NULL))
goto cleanup;
guidW[37] = '\0'; /* Replace the } by a NULL character */
if (UuidFromStringW(&guidW[1], ClassGuid) != RPC_S_OK)
goto cleanup;
/* Read class name */
- ret = SetupGetLineTextW(NULL, hInf, L"Version", L"Class",
ClassName, ClassNameSize, &requiredSize);
+ ret = SetupGetLineTextW(NULL, hInf, Version, Class, ClassName, ClassNameSize,
&requiredSize);
if (ret && ClassName == NULL && ClassNameSize == 0)
{
if (RequiredSize)
@@ -1215,7 +1217,7 @@
SetupCloseInfFile((HINF)file);
return NULL;
}
- else if (!GetInfClassW((HINF)file, &ClassGuid, ClassName, strlenW(class) + 1,
NULL))
+ else if (!PARSER_GetInfClassW((HINF)file, &ClassGuid, ClassName,
strlenW(class) + 1, NULL))
{
/* Unable to get class name in .inf file */
HeapFree(GetProcessHeap(), 0, ClassName);
@@ -2197,7 +2199,7 @@
if (hInf == INVALID_HANDLE_VALUE)
goto cleanup;
- ret = GetInfClassW(hInf, ClassGuid, ClassName, ClassNameSize, RequiredSize);
+ ret = PARSER_GetInfClassW(hInf, ClassGuid, ClassName, ClassNameSize, RequiredSize);
cleanup:
if (hInf != INVALID_HANDLE_VALUE)
Modified: trunk/reactos/dll/win32/setupapi/queue.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/setupapi/queue.c…
==============================================================================
--- trunk/reactos/dll/win32/setupapi/queue.c (original)
+++ trunk/reactos/dll/win32/setupapi/queue.c Thu May 24 01:40:46 2007
@@ -763,7 +763,7 @@
MyFree(security_key);
if (ret)
{
- if (!SetupGetLineText( &security_context, NULL, NULL, NULL, NULL, 0,
&required ))
+ if (!SetupGetLineTextW( &security_context, NULL, NULL, NULL, NULL, 0,
&required ))
return FALSE;
security_descriptor = MyMalloc( required * sizeof(WCHAR) );
if (!security_descriptor)
@@ -771,7 +771,7 @@
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
return FALSE;
}
- if (!SetupGetLineText( &security_context, NULL, NULL, NULL,
security_descriptor, required, NULL ))
+ if (!SetupGetLineTextW( &security_context, NULL, NULL, NULL,
security_descriptor, required, NULL ))
{
MyFree( security_descriptor );
return FALSE;