void replaceDetails()

in src/main/c/Windows/WindowsHelperFunctions.c [115:157]


void replaceDetails(serialPort* port, const wchar_t* friendlyName, const wchar_t* description, const wchar_t* location, const wchar_t* serialNumber, const wchar_t* manufacturer, const wchar_t* deviceDriver, int vid, int pid)
{
	// Update the storage structure
	port->enumerated = 1;
	port->vendorID = vid;
	port->productID = pid;
	wchar_t *newMemory = (wchar_t*)realloc(port->portLocation, (wcslen(location)+1)*sizeof(wchar_t));
	if (newMemory)
	{
		port->portLocation = newMemory;
		wcscpy_s(port->portLocation, wcslen(location)+1, location);
	}
	newMemory = (wchar_t*)realloc(port->friendlyName, (wcslen(friendlyName)+1)*sizeof(wchar_t));
	if (newMemory)
	{
		port->friendlyName = newMemory;
		wcscpy_s(port->friendlyName, wcslen(friendlyName)+1, friendlyName);
	}
	newMemory = (wchar_t*)realloc(port->serialNumber, (wcslen(serialNumber)+1)*sizeof(wchar_t));
	if (newMemory)
	{
		port->serialNumber = newMemory;
		wcscpy_s(port->serialNumber, wcslen(serialNumber)+1, serialNumber);
	}
	newMemory = (wchar_t*)realloc(port->manufacturer, (wcslen(manufacturer)+1)*sizeof(wchar_t));
	if (newMemory)
	{
		port->manufacturer = newMemory;
		wcscpy_s(port->manufacturer, wcslen(manufacturer)+1, manufacturer);
	}
	newMemory = (wchar_t*)realloc(port->deviceDriver, (wcslen(deviceDriver)+1)*sizeof(wchar_t));
	if (newMemory)
	{
		port->deviceDriver = newMemory;
		wcscpy_s(port->deviceDriver, wcslen(deviceDriver)+1, deviceDriver);
	}
	newMemory = (wchar_t*)realloc(port->portDescription, (wcslen(description)+1)*sizeof(wchar_t));
	if (newMemory)
	{
		port->portDescription = newMemory;
		wcscpy_s(port->portDescription, wcslen(description)+1, description);
	}
}