[VMX_SVGA]

Convert a pointer to a WCHAR string to an array of WCHARs to fix sizeof calculation. CID 10404

svn path=/trunk/; revision=50148
This commit is contained in:
Timo Kreuzer 2010-12-26 15:04:02 +00:00
parent 08d8df3975
commit 9db755b143

View file

@ -14,7 +14,7 @@
/* GLOBALS ********************************************************************/ /* GLOBALS ********************************************************************/
PHW_DEVICE_EXTENSION VmxDeviceExtensionArray[SVGA_MAX_DISPLAYS]; PHW_DEVICE_EXTENSION VmxDeviceExtensionArray[SVGA_MAX_DISPLAYS];
static PWCHAR AdapterString = L"VMware SVGA II"; static WCHAR AdapterString[] = L"VMware SVGA II";
/* FUNCTIONS ******************************************************************/ /* FUNCTIONS ******************************************************************/
@ -64,17 +64,17 @@ NTAPI
VmxIsMultiMon(IN PHW_DEVICE_EXTENSION DeviceExtension) VmxIsMultiMon(IN PHW_DEVICE_EXTENSION DeviceExtension)
{ {
ULONG Capabilities; ULONG Capabilities;
/* Get the caps */ /* Get the caps */
Capabilities = DeviceExtension->Capabilities; Capabilities = DeviceExtension->Capabilities;
/* Check for multi-mon support */ /* Check for multi-mon support */
if ((Capabilities & SVGA_CAP_MULTIMON) && (Capabilities & SVGA_CAP_PITCHLOCK)) if ((Capabilities & SVGA_CAP_MULTIMON) && (Capabilities & SVGA_CAP_PITCHLOCK))
{ {
/* Query the monitor count */ /* Query the monitor count */
if (VmxReadUlong(DeviceExtension, SVGA_REG_NUM_DISPLAYS) > 1) return TRUE; if (VmxReadUlong(DeviceExtension, SVGA_REG_NUM_DISPLAYS) > 1) return TRUE;
} }
/* Either no support, or just one screen */ /* Either no support, or just one screen */
return FALSE; return FALSE;
} }
@ -90,10 +90,10 @@ VmxFindAdapter(IN PVOID HwDeviceExtension,
VP_STATUS Status; VP_STATUS Status;
PHW_DEVICE_EXTENSION DeviceExtension = HwDeviceExtension; PHW_DEVICE_EXTENSION DeviceExtension = HwDeviceExtension;
DPRINT1("VMX searching for adapter\n"); DPRINT1("VMX searching for adapter\n");
/* Zero out the fields */ /* Zero out the fields */
VideoPortZeroMemory(DeviceExtension, sizeof(HW_DEVICE_EXTENSION)); VideoPortZeroMemory(DeviceExtension, sizeof(HW_DEVICE_EXTENSION));
/* Validate the Config Info */ /* Validate the Config Info */
if (ConfigInfo->Length < sizeof(VIDEO_PORT_CONFIG_INFO)) if (ConfigInfo->Length < sizeof(VIDEO_PORT_CONFIG_INFO))
{ {
@ -101,21 +101,21 @@ VmxFindAdapter(IN PVOID HwDeviceExtension,
DPRINT1("Invalid configuration info\n"); DPRINT1("Invalid configuration info\n");
return ERROR_INVALID_PARAMETER; return ERROR_INVALID_PARAMETER;
} }
/* Initialize the device extension and find the adapter */ /* Initialize the device extension and find the adapter */
Status = VmxInitDevice(DeviceExtension); Status = VmxInitDevice(DeviceExtension);
DPRINT1("Init status: %lx\n", Status); DPRINT1("Init status: %lx\n", Status);
if (Status != NO_ERROR) return ERROR_DEV_NOT_EXIST; if (Status != NO_ERROR) return ERROR_DEV_NOT_EXIST;
/* Save this adapter extension */ /* Save this adapter extension */
VmxDeviceExtensionArray[0] = DeviceExtension; VmxDeviceExtensionArray[0] = DeviceExtension;
/* Create the sync event */ /* Create the sync event */
VideoPortCreateEvent(DeviceExtension, VideoPortCreateEvent(DeviceExtension,
NOTIFICATION_EVENT, NOTIFICATION_EVENT,
NULL, NULL,
&DeviceExtension->SyncEvent); &DeviceExtension->SyncEvent);
/* Check for multi-monitor configuration */ /* Check for multi-monitor configuration */
if (VmxIsMultiMon(DeviceExtension)) if (VmxIsMultiMon(DeviceExtension))
{ {
@ -123,14 +123,14 @@ VmxFindAdapter(IN PVOID HwDeviceExtension,
UNIMPLEMENTED; UNIMPLEMENTED;
while (TRUE); while (TRUE);
} }
/* Zero the frame buffer */ /* Zero the frame buffer */
VideoPortZeroMemory((PVOID)DeviceExtension->FrameBuffer.LowPart, VideoPortZeroMemory((PVOID)DeviceExtension->FrameBuffer.LowPart,
DeviceExtension->VramSize.LowPart); DeviceExtension->VramSize.LowPart);
/* Initialize the video modes */ /* Initialize the video modes */
VmxInitModes(DeviceExtension); VmxInitModes(DeviceExtension);
/* Setup registry keys */ /* Setup registry keys */
VideoPortSetRegistryParameters(DeviceExtension, VideoPortSetRegistryParameters(DeviceExtension,
L"HardwareInformation.ChipType", L"HardwareInformation.ChipType",
@ -152,7 +152,7 @@ VmxFindAdapter(IN PVOID HwDeviceExtension,
L"HardwareInformation.BiosString", L"HardwareInformation.BiosString",
AdapterString, AdapterString,
sizeof(AdapterString)); sizeof(AdapterString));
/* No VDM support */ /* No VDM support */
ConfigInfo->NumEmulatorAccessEntries = 0; ConfigInfo->NumEmulatorAccessEntries = 0;
ConfigInfo->EmulatorAccessEntries = 0; ConfigInfo->EmulatorAccessEntries = 0;
@ -160,7 +160,7 @@ VmxFindAdapter(IN PVOID HwDeviceExtension,
ConfigInfo->HardwareStateSize = 0; ConfigInfo->HardwareStateSize = 0;
ConfigInfo->VdmPhysicalVideoMemoryAddress.QuadPart = 0; ConfigInfo->VdmPhysicalVideoMemoryAddress.QuadPart = 0;
ConfigInfo->VdmPhysicalVideoMemoryLength = 0; ConfigInfo->VdmPhysicalVideoMemoryLength = 0;
/* Write that this is Windows XP or higher */ /* Write that this is Windows XP or higher */
VmxWriteUlong(DeviceExtension, SVGA_REG_GUEST_ID, 0x5000 | 0x08); VmxWriteUlong(DeviceExtension, SVGA_REG_GUEST_ID, 0x5000 | 0x08);
return NO_ERROR; return NO_ERROR;
@ -252,7 +252,7 @@ DriverEntry(IN PVOID Context1,
DPRINT1("VMX-SVGAII Loading...\n"); DPRINT1("VMX-SVGAII Loading...\n");
VideoPortZeroMemory(VmxDeviceExtensionArray, sizeof(VmxDeviceExtensionArray)); VideoPortZeroMemory(VmxDeviceExtensionArray, sizeof(VmxDeviceExtensionArray));
VideoPortZeroMemory(&InitData, sizeof(InitData)); VideoPortZeroMemory(&InitData, sizeof(InitData));
/* Setup the initialization structure with VideoPort */ /* Setup the initialization structure with VideoPort */
InitData.HwInitDataSize = sizeof(VIDEO_HW_INITIALIZATION_DATA); InitData.HwInitDataSize = sizeof(VIDEO_HW_INITIALIZATION_DATA);
InitData.HwFindAdapter = VmxFindAdapter; InitData.HwFindAdapter = VmxFindAdapter;