summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSandy Stutsman <sstutsma@redhat.com>2015-11-17 14:50:37 -0500
committerSandy Stutsman <sstutsma@redhat.com>2015-11-25 11:48:24 -0500
commitd179dd861711bb4bc1133dea8d6fc56f4d7446e6 (patch)
treeea309f83bcb1ba7131aaecf5dce0326c7ccea991
parent088408693c0c07ca88e085209977ecbae7e6815e (diff)
Code Analysis clean up.
mspace.c is renamed to mspace.cpp because of a bug in Visual Studio (see https://www.osr.com/blog/2015/08/12/windows-10-wdk-visual-studio-2015-issues/) Other changes are to quiet messages from VS code analysis and to complete the upgrade to using Windows 10 WDK.
-rwxr-xr-xqxldod Package/qxldod Package.vcxproj138
-rwxr-xr-xqxldod.sln41
-rwxr-xr-xqxldod/QxlDod.cpp520
-rw-r--r--[-rwxr-xr-x]qxldod/mspace.cpp (renamed from qxldod/mspace.c)2
-rwxr-xr-xqxldod/qxldod.vcxproj280
-rwxr-xr-xqxldod/qxldod.vcxproj.filters2
6 files changed, 375 insertions, 608 deletions
diff --git a/qxldod Package/qxldod Package.vcxproj b/qxldod Package/qxldod Package.vcxproj
index 1a6b5c7..76fb33b 100755
--- a/qxldod Package/qxldod Package.vcxproj
+++ b/qxldod Package/qxldod Package.vcxproj
@@ -1,52 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Win8.1 Debug|Win32">
- <Configuration>Win8.1 Debug</Configuration>
+ <ProjectConfiguration Include="Win10 Debug|Win32">
+ <Configuration>Win10 Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Debug|Win32">
- <Configuration>Win8 Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8.1 Release|Win32">
- <Configuration>Win8.1 Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Release|Win32">
- <Configuration>Win8 Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win7 Debug|Win32">
- <Configuration>Win7 Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win7 Release|Win32">
- <Configuration>Win7 Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8.1 Debug|x64">
- <Configuration>Win8.1 Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Debug|x64">
- <Configuration>Win8 Debug</Configuration>
+ <ProjectConfiguration Include="Win10 Debug|x64">
+ <Configuration>Win10 Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Win8.1 Release|x64">
- <Configuration>Win8.1 Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Release|x64">
- <Configuration>Win8 Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win7 Debug|x64">
- <Configuration>Win7 Debug</Configuration>
- <Platform>x64</Platform>
+ <ProjectConfiguration Include="Win10 Release|Win32">
+ <Configuration>Win10 Release</Configuration>
+ <Platform>Win32</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Win7 Release|x64">
- <Configuration>Win7 Release</Configuration>
+ <ProjectConfiguration Include="Win10 Release|x64">
+ <Configuration>Win10 Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
@@ -68,63 +36,27 @@
<DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'" Label="Configuration">
- <TargetVersion>Windows8</TargetVersion>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'" Label="Configuration">
- <TargetVersion>Windows8</TargetVersion>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'" Label="Configuration">
- <TargetVersion>Windows7</TargetVersion>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'" Label="Configuration">
- <TargetVersion>Windows7</TargetVersion>
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'">
+ <TargetVersion>
+ </TargetVersion>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'" Label="Configuration">
- <TargetVersion>Windows8</TargetVersion>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'">
- <TargetVersion>WindowsV6.3</TargetVersion>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'" Label="Configuration">
+ <TargetVersion>
+ </TargetVersion>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'" Label="Configuration">
- <TargetVersion>Windows8</TargetVersion>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'" Label="Configuration">
+ <TargetVersion>
+ </TargetVersion>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'" Label="Configuration">
- <TargetVersion>Windows7</TargetVersion>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'" Label="Configuration">
- <TargetVersion>Windows7</TargetVersion>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'" Label="Configuration">
+ <TargetVersion>
+ </TargetVersion>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
</PropertyGroup>
@@ -149,42 +81,22 @@
<VerifyDrivers />
<VerifyFlags>133563</VerifyFlags>
</PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'">
- <Inf2Cat>
- <WindowsVersionList>8_x86,6_3_x86</WindowsVersionList>
- </Inf2Cat>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'">
- <Inf2Cat>
- <WindowsVersionList>8_x86,6_3_x86</WindowsVersionList>
- </Inf2Cat>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'">
- <Inf2Cat>
- <WindowsVersionList>8_x86,6_3_x86</WindowsVersionList>
- </Inf2Cat>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'">
- <Inf2Cat>
- <WindowsVersionList>8_x86,6_3_x86</WindowsVersionList>
- </Inf2Cat>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'">
<Inf2Cat>
<WindowsVersionList>8_x64,Server8_x64,Server6_3_x64,6_3_x64</WindowsVersionList>
</Inf2Cat>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'">
<Inf2Cat>
<WindowsVersionList>8_x64,Server8_x64,Server6_3_x64,6_3_x64</WindowsVersionList>
</Inf2Cat>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'">
<Inf2Cat>
<WindowsVersionList>8_x64,Server8_x64,Server6_3_x64,6_3_x64</WindowsVersionList>
</Inf2Cat>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'">
<Inf2Cat>
<WindowsVersionList>8_x64,Server8_x64,Server6_3_x64,6_3_x64</WindowsVersionList>
</Inf2Cat>
diff --git a/qxldod.sln b/qxldod.sln
index fdc967f..231b4e5 100755
--- a/qxldod.sln
+++ b/qxldod.sln
@@ -9,6 +9,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qxldod Package", "qxldod Pa
{A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD} = {A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD}
EndProjectSection
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{467F7836-D656-441E-ACFE-1CF73CD25364}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Win10 Debug|Win32 = Win10 Debug|Win32
@@ -17,26 +19,25 @@ Global
Win10 Release|x64 = Win10 Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD}.Win10 Debug|Win32.ActiveCfg = Win8.1 Debug|Win32
- {A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD}.Win10 Debug|Win32.Build.0 = Win8.1 Debug|Win32
- {A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD}.Win10 Debug|Win32.Deploy.0 = Win8.1 Debug|Win32
- {A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD}.Win10 Debug|x64.ActiveCfg = Win8.1 Debug|x64
- {A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD}.Win10 Debug|x64.Build.0 = Win8.1 Debug|x64
- {A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD}.Win10 Release|Win32.ActiveCfg = Win8 Release|Win32
- {A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD}.Win10 Release|Win32.Build.0 = Win8 Release|Win32
- {A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD}.Win10 Release|Win32.Deploy.0 = Win8 Release|Win32
- {A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD}.Win10 Release|x64.ActiveCfg = Win8.1 Release|x64
- {A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD}.Win10 Release|x64.Build.0 = Win8.1 Release|x64
- {B8C04B51-4207-491D-A7DD-C54861E8B528}.Win10 Debug|Win32.ActiveCfg = Win8.1 Debug|Win32
- {B8C04B51-4207-491D-A7DD-C54861E8B528}.Win10 Debug|Win32.Build.0 = Win8.1 Debug|Win32
- {B8C04B51-4207-491D-A7DD-C54861E8B528}.Win10 Debug|Win32.Deploy.0 = Win8.1 Debug|Win32
- {B8C04B51-4207-491D-A7DD-C54861E8B528}.Win10 Debug|x64.ActiveCfg = Win8.1 Debug|x64
- {B8C04B51-4207-491D-A7DD-C54861E8B528}.Win10 Debug|x64.Build.0 = Win8.1 Debug|x64
- {B8C04B51-4207-491D-A7DD-C54861E8B528}.Win10 Release|Win32.ActiveCfg = Win8.1 Release|Win32
- {B8C04B51-4207-491D-A7DD-C54861E8B528}.Win10 Release|Win32.Build.0 = Win8.1 Release|Win32
- {B8C04B51-4207-491D-A7DD-C54861E8B528}.Win10 Release|Win32.Deploy.0 = Win8.1 Release|Win32
- {B8C04B51-4207-491D-A7DD-C54861E8B528}.Win10 Release|x64.ActiveCfg = Win8.1 Release|x64
- {B8C04B51-4207-491D-A7DD-C54861E8B528}.Win10 Release|x64.Build.0 = Win8.1 Release|x64
+ {A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD}.Win10 Debug|Win32.ActiveCfg = Win10 Debug|Win32
+ {A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD}.Win10 Debug|Win32.Build.0 = Win10 Debug|Win32
+ {A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD}.Win10 Debug|Win32.Deploy.0 = Win10 Debug|Win32
+ {A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD}.Win10 Debug|x64.ActiveCfg = Win10 Debug|x64
+ {A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD}.Win10 Debug|x64.Build.0 = Win10 Debug|x64
+ {A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD}.Win10 Release|Win32.ActiveCfg = Win10 Release|Win32
+ {A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD}.Win10 Release|Win32.Build.0 = Win10 Release|Win32
+ {A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD}.Win10 Release|Win32.Deploy.0 = Win10 Release|Win32
+ {A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD}.Win10 Release|x64.ActiveCfg = Win10 Release|x64
+ {A6F48FC7-97E9-48EC-BCDF-1E4F9B43AADD}.Win10 Release|x64.Build.0 = Win10 Release|x64
+ {B8C04B51-4207-491D-A7DD-C54861E8B528}.Win10 Debug|Win32.ActiveCfg = Win10 Debug|Win32
+ {B8C04B51-4207-491D-A7DD-C54861E8B528}.Win10 Debug|Win32.Build.0 = Win10 Debug|Win32
+ {B8C04B51-4207-491D-A7DD-C54861E8B528}.Win10 Debug|x64.ActiveCfg = Win10 Debug|x64
+ {B8C04B51-4207-491D-A7DD-C54861E8B528}.Win10 Debug|x64.Build.0 = Win10 Debug|x64
+ {B8C04B51-4207-491D-A7DD-C54861E8B528}.Win10 Release|Win32.ActiveCfg = Win10 Release|Win32
+ {B8C04B51-4207-491D-A7DD-C54861E8B528}.Win10 Release|Win32.Build.0 = Win10 Release|Win32
+ {B8C04B51-4207-491D-A7DD-C54861E8B528}.Win10 Release|Win32.Deploy.0 = Win10 Release|Win32
+ {B8C04B51-4207-491D-A7DD-C54861E8B528}.Win10 Release|x64.ActiveCfg = Win10 Release|x64
+ {B8C04B51-4207-491D-A7DD-C54861E8B528}.Win10 Release|x64.Build.0 = Win10 Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/qxldod/QxlDod.cpp b/qxldod/QxlDod.cpp
index a1718a4..a328d2d 100755
--- a/qxldod/QxlDod.cpp
+++ b/qxldod/QxlDod.cpp
@@ -3,7 +3,7 @@
#include "qxl_windows.h"
#pragma code_seg(push)
-#pragma code_seg()
+#pragma code_seg("PAGE")
#define WIN_QXL_INT_MASK ((QXL_INTERRUPT_DISPLAY) | \
(QXL_INTERRUPT_CURSOR) | \
@@ -55,15 +55,11 @@ typedef struct _QXL_ESCAPE {
};
}QXL_ESCAPE;
-#pragma code_seg(pop)
-
-#pragma code_seg("PAGE")
-
-
QxlDod::QxlDod(_In_ DEVICE_OBJECT* pPhysicalDeviceObject) : m_pPhysicalDevice(pPhysicalDeviceObject),
m_MonitorPowerState(PowerDeviceD0),
m_AdapterPowerState(PowerDeviceD0)
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_INFORMATION, ("---> %s\n", __FUNCTION__));
*((UINT*)&m_Flags) = 0;
RtlZeroMemory(&m_DxgkInterface, sizeof(m_DxgkInterface));
@@ -246,6 +242,7 @@ DbgDevicePowerString(
__in DEVICE_POWER_STATE Type
)
{
+ PAGED_CODE();
switch (Type)
{
case PowerDeviceUnspecified:
@@ -270,6 +267,7 @@ DbgPowerActionString(
__in POWER_ACTION Type
)
{
+ PAGED_CODE();
switch (Type)
{
case PowerActionNone:
@@ -1474,7 +1472,7 @@ NTSTATUS QxlDod::CommitVidPn(_In_ CONST DXGKARG_COMMITVIDPN* CONST pCommitVidPn)
CommitVidPnExit:
- NTSTATUS TempStatus;
+ NTSTATUS TempStatus(STATUS_SUCCESS);
UNREFERENCED_PARAMETER(TempStatus);
if ((pVidPnSourceModeSetInterface != NULL) &&
@@ -1664,7 +1662,7 @@ NTSTATUS QxlDod::UpdateActiveVidPnPresentPath(_In_ CONST DXGKARG_UPDATEACTIVEVID
//
// Non-Paged Code
//
-#pragma code_seg(push)
+#pragma code_seg(push) //Non-Paged Code
#pragma code_seg()
VOID QxlDod::DpcRoutine(VOID)
@@ -1835,7 +1833,7 @@ NTSTATUS QxlDod::WriteHWInfoStr(_In_ HANDLE DevInstRegKeyHandle, _In_ PCWSTR psz
return Status;
}
-NTSTATUS QxlDod::RegisterHWInfo(ULONG Id)
+NTSTATUS QxlDod::RegisterHWInfo(_In_ ULONG Id)
{
PAGED_CODE();
@@ -1914,11 +1912,10 @@ NTSTATUS QxlDod::RegisterHWInfo(ULONG Id)
return Status;
}
-
//
// Non-Paged Code
//
-#pragma code_seg(push)
+#pragma code_seg(push) //Non-Paged
#pragma code_seg()
UINT BPPFromPixelFormat(D3DDDIFORMAT Format)
@@ -1947,122 +1944,42 @@ D3DDDI_VIDEO_PRESENT_SOURCE_ID QxlDod::FindSourceForTarget(D3DDDI_VIDEO_PRESENT_
return DefaultToZero ? 0 : D3DDDI_ID_UNINITIALIZED;
}
+// HW specific code
-
-//
-// Frame buffer map/unmap
-//
-
-NTSTATUS
-MapFrameBuffer(
- _In_ PHYSICAL_ADDRESS PhysicalAddress,
- _In_ ULONG Length,
- _Outptr_result_bytebuffer_(Length) VOID** VirtualAddress)
+VOID GetPitches(_In_ CONST BLT_INFO* pBltInfo, _Out_ LONG* pPixelPitch, _Out_ LONG* pRowPitch)
{
- PAGED_CODE();
-
- //
- // Check for parameters
- //
- if ((PhysicalAddress.QuadPart == (ULONGLONG)0) ||
- (Length == 0) ||
- (VirtualAddress == NULL))
+ switch (pBltInfo->Rotation) {
+ case D3DKMDT_VPPR_IDENTITY:
{
- DbgPrint(TRACE_LEVEL_ERROR, ("One of PhysicalAddress.QuadPart (0x%I64x), Length (%lu), VirtualAddress (%p) is NULL or 0\n",
- PhysicalAddress.QuadPart, Length, VirtualAddress));
- return STATUS_INVALID_PARAMETER;
+ *pPixelPitch = (pBltInfo->BitsPerPel / BITS_PER_BYTE);
+ *pRowPitch = pBltInfo->Pitch;
+ return;
}
-
- *VirtualAddress = MmMapIoSpace(PhysicalAddress,
- Length,
- MmWriteCombined);
- if (*VirtualAddress == NULL)
+ case D3DKMDT_VPPR_ROTATE90:
{
- // The underlying call to MmMapIoSpace failed. This may be because, MmWriteCombined
- // isn't supported, so try again with MmNonCached
-
- *VirtualAddress = MmMapIoSpace(PhysicalAddress,
- Length,
- MmNonCached);
- if (*VirtualAddress == NULL)
- {
- DbgPrint(TRACE_LEVEL_ERROR, ("MmMapIoSpace returned a NULL buffer when trying to allocate %lu bytes", Length));
- return STATUS_NO_MEMORY;
- }
+ *pPixelPitch = -((LONG) pBltInfo->Pitch);
+ *pRowPitch = (pBltInfo->BitsPerPel / BITS_PER_BYTE);
+ return;
}
-
- return STATUS_SUCCESS;
-}
-
-NTSTATUS
-UnmapFrameBuffer(
- _In_reads_bytes_(Length) VOID* VirtualAddress,
- _In_ ULONG Length)
-{
- PAGED_CODE();
-
-
- //
- // Check for parameters
- //
- if ((VirtualAddress == NULL) && (Length == 0))
+ case D3DKMDT_VPPR_ROTATE180:
{
- // Allow this function to be called when there's no work to do, and treat as successful
- return STATUS_SUCCESS;
+ *pPixelPitch = -((LONG) pBltInfo->BitsPerPel / BITS_PER_BYTE);
+ *pRowPitch = -((LONG) pBltInfo->Pitch);
+ return;
}
- else if ((VirtualAddress == NULL) || (Length == 0))
+ case D3DKMDT_VPPR_ROTATE270:
{
- DbgPrint(TRACE_LEVEL_ERROR, ("Only one of Length (%lu), VirtualAddress (%p) is NULL or 0",
- Length, VirtualAddress));
- return STATUS_INVALID_PARAMETER;
+ *pPixelPitch = pBltInfo->Pitch;
+ *pRowPitch = -((LONG) pBltInfo->BitsPerPel / BITS_PER_BYTE);
+ return;
}
-
- MmUnmapIoSpace(VirtualAddress,
- Length);
-
- return STATUS_SUCCESS;
-}
-
-
-
-
-// HW specific code
-
-VOID GetPitches(_In_ CONST BLT_INFO* pBltInfo, _Out_ LONG* pPixelPitch, _Out_ LONG* pRowPitch)
-{
- switch (pBltInfo->Rotation)
+ default:
{
- case D3DKMDT_VPPR_IDENTITY:
- {
- *pPixelPitch = (pBltInfo->BitsPerPel / BITS_PER_BYTE);
- *pRowPitch = pBltInfo->Pitch;
- return;
- }
- case D3DKMDT_VPPR_ROTATE90:
- {
- *pPixelPitch = -((LONG)pBltInfo->Pitch);
- *pRowPitch = (pBltInfo->BitsPerPel / BITS_PER_BYTE);
- return;
- }
- case D3DKMDT_VPPR_ROTATE180:
- {
- *pPixelPitch = -((LONG)pBltInfo->BitsPerPel / BITS_PER_BYTE);
- *pRowPitch = -((LONG)pBltInfo->Pitch);
- return;
- }
- case D3DKMDT_VPPR_ROTATE270:
- {
- *pPixelPitch = pBltInfo->Pitch;
- *pRowPitch = -((LONG)pBltInfo->BitsPerPel / BITS_PER_BYTE);
- return;
- }
- default:
- {
- QXL_LOG_ASSERTION1("Invalid rotation (0x%I64x) specified", pBltInfo->Rotation);
- *pPixelPitch = 0;
- *pRowPitch = 0;
- return;
- }
+ QXL_LOG_ASSERTION1("Invalid rotation (0x%I64x) specified", pBltInfo->Rotation);
+ *pPixelPitch = 0;
+ *pRowPitch = 0;
+ return;
+ }
}
}
@@ -2072,61 +1989,60 @@ BYTE* GetRowStart(_In_ CONST BLT_INFO* pBltInfo, CONST RECT* pRect)
LONG OffLeft = pRect->left + pBltInfo->Offset.x;
LONG OffTop = pRect->top + pBltInfo->Offset.y;
LONG BytesPerPixel = (pBltInfo->BitsPerPel / BITS_PER_BYTE);
- switch (pBltInfo->Rotation)
+ switch (pBltInfo->Rotation) {
+ case D3DKMDT_VPPR_IDENTITY:
{
- case D3DKMDT_VPPR_IDENTITY:
- {
- pRet = ((BYTE*)pBltInfo->pBits +
- OffTop * pBltInfo->Pitch +
- OffLeft * BytesPerPixel);
- break;
- }
- case D3DKMDT_VPPR_ROTATE90:
- {
- pRet = ((BYTE*)pBltInfo->pBits +
- (pBltInfo->Height - 1 - OffLeft) * pBltInfo->Pitch +
- OffTop * BytesPerPixel);
- break;
- }
- case D3DKMDT_VPPR_ROTATE180:
- {
- pRet = ((BYTE*)pBltInfo->pBits +
- (pBltInfo->Height - 1 - OffTop) * pBltInfo->Pitch +
- (pBltInfo->Width - 1 - OffLeft) * BytesPerPixel);
- break;
- }
- case D3DKMDT_VPPR_ROTATE270:
- {
- pRet = ((BYTE*)pBltInfo->pBits +
- OffLeft * pBltInfo->Pitch +
- (pBltInfo->Width - 1 - OffTop) * BytesPerPixel);
- break;
- }
- default:
- {
- QXL_LOG_ASSERTION1("Invalid rotation (0x%I64x) specified", pBltInfo->Rotation);
- break;
- }
+ pRet = ((BYTE*) pBltInfo->pBits +
+ OffTop * pBltInfo->Pitch +
+ OffLeft * BytesPerPixel);
+ break;
+ }
+ case D3DKMDT_VPPR_ROTATE90:
+ {
+ pRet = ((BYTE*) pBltInfo->pBits +
+ (pBltInfo->Height - 1 - OffLeft) * pBltInfo->Pitch +
+ OffTop * BytesPerPixel);
+ break;
+ }
+ case D3DKMDT_VPPR_ROTATE180:
+ {
+ pRet = ((BYTE*) pBltInfo->pBits +
+ (pBltInfo->Height - 1 - OffTop) * pBltInfo->Pitch +
+ (pBltInfo->Width - 1 - OffLeft) * BytesPerPixel);
+ break;
+ }
+ case D3DKMDT_VPPR_ROTATE270:
+ {
+ pRet = ((BYTE*) pBltInfo->pBits +
+ OffLeft * pBltInfo->Pitch +
+ (pBltInfo->Width - 1 - OffTop) * BytesPerPixel);
+ break;
+ }
+ default:
+ {
+ QXL_LOG_ASSERTION1("Invalid rotation (0x%I64x) specified", pBltInfo->Rotation);
+ break;
+ }
}
return pRet;
}
/****************************Internal*Routine******************************\
- * CopyBitsGeneric
- *
- *
- * Blt function which can handle a rotated dst/src, offset rects in dst/src
- * and bpp combinations of:
- * dst | src
- * 32 | 32 // For identity rotation this is much faster in CopyBits32_32
- * 32 | 24
- * 32 | 16
- * 24 | 32
- * 16 | 32
- * 8 | 32
- * 24 | 24 // untested
- *
+* CopyBitsGeneric
+*
+*
+* Blt function which can handle a rotated dst/src, offset rects in dst/src
+* and bpp combinations of:
+* dst | src
+* 32 | 32 // For identity rotation this is much faster in CopyBits32_32
+* 32 | 24
+* 32 | 16
+* 24 | 32
+* 16 | 32
+* 8 | 32
+* 24 | 24 // untested
+*
\**************************************************************************/
VOID CopyBitsGeneric(
@@ -2140,13 +2056,12 @@ VOID CopyBitsGeneric(
LONG SrcPixelPitch = 0;
LONG SrcRowPitch = 0;
- DbgPrint(TRACE_LEVEL_VERBOSE , ("---> %s NumRects = %d Dst = %p Src = %p\n", __FUNCTION__, NumRects, pDst->pBits, pSrc->pBits));
+ DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s NumRects = %d Dst = %p Src = %p\n", __FUNCTION__, NumRects, pDst->pBits, pSrc->pBits));
GetPitches(pDst, &DstPixelPitch, &DstRowPitch);
GetPitches(pSrc, &SrcPixelPitch, &SrcRowPitch);
- for (UINT iRect = 0; iRect < NumRects; iRect++)
- {
+ for (UINT iRect = 0; iRect < NumRects; iRect++) {
CONST RECT* pRect = &pRects[iRect];
NT_ASSERT(pRect->right >= pRect->left);
@@ -2158,57 +2073,47 @@ VOID CopyBitsGeneric(
BYTE* pDstRow = GetRowStart(pDst, pRect);
CONST BYTE* pSrcRow = GetRowStart(pSrc, pRect);
- for (UINT y=0; y < NumRows; y++)
- {
+ for (UINT y = 0; y < NumRows; y++) {
BYTE* pDstPixel = pDstRow;
CONST BYTE* pSrcPixel = pSrcRow;
- for (UINT x=0; x < NumPixels; x++)
- {
+ for (UINT x = 0; x < NumPixels; x++) {
if ((pDst->BitsPerPel == 24) ||
- (pSrc->BitsPerPel == 24))
- {
+ (pSrc->BitsPerPel == 24)) {
pDstPixel[0] = pSrcPixel[0];
pDstPixel[1] = pSrcPixel[1];
pDstPixel[2] = pSrcPixel[2];
// pPixel[3] is the alpha channel and is ignored for whichever of Src/Dst is 32bpp
}
- else if (pDst->BitsPerPel == 32)
- {
- if (pSrc->BitsPerPel == 32)
- {
- UINT32* pDstPixelAs32 = (UINT32*)pDstPixel;
- UINT32* pSrcPixelAs32 = (UINT32*)pSrcPixel;
+ else if (pDst->BitsPerPel == 32) {
+ if (pSrc->BitsPerPel == 32) {
+ UINT32* pDstPixelAs32 = (UINT32*) pDstPixel;
+ UINT32* pSrcPixelAs32 = (UINT32*) pSrcPixel;
*pDstPixelAs32 = *pSrcPixelAs32;
}
- else if (pSrc->BitsPerPel == 16)
- {
- UINT32* pDstPixelAs32 = (UINT32*)pDstPixel;
- UINT16* pSrcPixelAs16 = (UINT16*)pSrcPixel;
+ else if (pSrc->BitsPerPel == 16) {
+ UINT32* pDstPixelAs32 = (UINT32*) pDstPixel;
+ UINT16* pSrcPixelAs16 = (UINT16*) pSrcPixel;
*pDstPixelAs32 = CONVERT_16BPP_TO_32BPP(*pSrcPixelAs16);
}
- else
- {
+ else {
// Invalid pSrc->BitsPerPel on a pDst->BitsPerPel of 32
NT_ASSERT(FALSE);
}
}
- else if (pDst->BitsPerPel == 16)
- {
+ else if (pDst->BitsPerPel == 16) {
NT_ASSERT(pSrc->BitsPerPel == 32);
- UINT16* pDstPixelAs16 = (UINT16*)pDstPixel;
+ UINT16* pDstPixelAs16 = (UINT16*) pDstPixel;
*pDstPixelAs16 = CONVERT_32BPP_TO_16BPP(pSrcPixel);
}
- else if (pDst->BitsPerPel == 8)
- {
+ else if (pDst->BitsPerPel == 8) {
NT_ASSERT(pSrc->BitsPerPel == 32);
*pDstPixel = CONVERT_32BPP_TO_8BPP(pSrcPixel);
}
- else
- {
+ else {
// Invalid pDst->BitsPerPel
NT_ASSERT(FALSE);
}
@@ -2236,8 +2141,7 @@ VOID CopyBits32_32(
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
- for (UINT iRect = 0; iRect < NumRects; iRect++)
- {
+ for (UINT iRect = 0; iRect < NumRects; iRect++) {
CONST RECT* pRect = &pRects[iRect];
NT_ASSERT(pRect->right >= pRect->left);
@@ -2246,15 +2150,14 @@ VOID CopyBits32_32(
UINT NumPixels = pRect->right - pRect->left;
UINT NumRows = pRect->bottom - pRect->top;
UINT BytesToCopy = NumPixels * 4;
- BYTE* pStartDst = ((BYTE*)pDst->pBits +
- (pRect->top + pDst->Offset.y) * pDst->Pitch +
- (pRect->left + pDst->Offset.x) * 4);
- CONST BYTE* pStartSrc = ((BYTE*)pSrc->pBits +
- (pRect->top + pSrc->Offset.y) * pSrc->Pitch +
- (pRect->left + pSrc->Offset.x) * 4);
-
- for (UINT i = 0; i < NumRows; ++i)
- {
+ BYTE* pStartDst = ((BYTE*) pDst->pBits +
+ (pRect->top + pDst->Offset.y) * pDst->Pitch +
+ (pRect->left + pDst->Offset.x) * 4);
+ CONST BYTE* pStartSrc = ((BYTE*) pSrc->pBits +
+ (pRect->top + pSrc->Offset.y) * pSrc->Pitch +
+ (pRect->left + pSrc->Offset.x) * 4);
+
+ for (UINT i = 0; i < NumRows; ++i) {
RtlCopyMemory(pStartDst, pStartSrc, BytesToCopy);
pStartDst += pDst->Pitch;
pStartSrc += pSrc->Pitch;
@@ -2264,7 +2167,7 @@ VOID CopyBits32_32(
}
-VOID BltBits (
+VOID BltBits(
BLT_INFO* pDst,
CONST BLT_INFO* pSrc,
UINT NumRects,
@@ -2274,31 +2177,105 @@ VOID BltBits (
// This usage is redundant in the sample driver since it is already being used for MmProbeAndLockPages. However, it is very important
// to have this in place and to make sure developers don't miss it, it is in these two locations.
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
- __try
- {
+ __try {
if (pDst->BitsPerPel == 32 &&
pSrc->BitsPerPel == 32 &&
pDst->Rotation == D3DKMDT_VPPR_IDENTITY &&
- pSrc->Rotation == D3DKMDT_VPPR_IDENTITY)
- {
+ pSrc->Rotation == D3DKMDT_VPPR_IDENTITY) {
// This is by far the most common copy function being called
CopyBits32_32(pDst, pSrc, NumRects, pRects);
}
- else
- {
+ else {
CopyBitsGeneric(pDst, pSrc, NumRects, pRects);
}
}
- #pragma prefast(suppress: __WARNING_EXCEPTIONEXECUTEHANDLER, "try/except is only able to protect against user-mode errors and these are the only errors we try to catch here");
- __except(EXCEPTION_EXECUTE_HANDLER)
+#pragma prefast(suppress: __WARNING_EXCEPTIONEXECUTEHANDLER, "try/except is only able to protect against user-mode errors and these are the only errors we try to catch here");
+ __except (EXCEPTION_EXECUTE_HANDLER)
{
DbgPrint(TRACE_LEVEL_ERROR, ("Either dst (0x%I64x) or src (0x%I64x) bits encountered exception during access.\n", pDst->pBits, pSrc->pBits));
}
}
-#pragma code_seg(pop) // End Non-Paged Code
+
+#pragma code seg(pop) // End Non Paged Code
+#pragma code_seg("PAGE")
+//
+// Frame buffer map/unmap
+//
+
+NTSTATUS
+MapFrameBuffer(
+ _In_ PHYSICAL_ADDRESS PhysicalAddress,
+ _In_ ULONG Length,
+ _Outptr_result_bytebuffer_(Length) VOID** VirtualAddress)
+{
+ PAGED_CODE();
+
+ //
+ // Check for parameters
+ //
+ if ((PhysicalAddress.QuadPart == (ULONGLONG)0) ||
+ (Length == 0) ||
+ (VirtualAddress == NULL))
+ {
+ DbgPrint(TRACE_LEVEL_ERROR, ("One of PhysicalAddress.QuadPart (0x%I64x), Length (%lu), VirtualAddress (%p) is NULL or 0\n",
+ PhysicalAddress.QuadPart, Length, VirtualAddress));
+ return STATUS_INVALID_PARAMETER;
+ }
+
+ *VirtualAddress = MmMapIoSpaceEx(PhysicalAddress,
+ Length,
+ PAGE_WRITECOMBINE | PAGE_READWRITE);
+ if (*VirtualAddress == NULL)
+ {
+ // The underlying call to MmMapIoSpace failed. This may be because, MmWriteCombined
+ // isn't supported, so try again with MmNonCached
+
+ *VirtualAddress = MmMapIoSpaceEx(PhysicalAddress,
+ Length,
+ (ULONG) (PAGE_NOCACHE | PAGE_READWRITE));
+ if (*VirtualAddress == NULL)
+ {
+ DbgPrint(TRACE_LEVEL_ERROR, ("MmMapIoSpace returned a NULL buffer when trying to allocate %lu bytes", Length));
+ return STATUS_NO_MEMORY;
+ }
+ }
+
+ return STATUS_SUCCESS;
+}
+
+NTSTATUS
+UnmapFrameBuffer(
+ _In_reads_bytes_(Length) VOID* VirtualAddress,
+ _In_ ULONG Length)
+{
+ PAGED_CODE();
+
+
+ //
+ // Check for parameters
+ //
+ if ((VirtualAddress == NULL) && (Length == 0))
+ {
+ // Allow this function to be called when there's no work to do, and treat as successful
+ return STATUS_SUCCESS;
+ }
+ else if ((VirtualAddress == NULL) || (Length == 0))
+ {
+ DbgPrint(TRACE_LEVEL_ERROR, ("Only one of Length (%lu), VirtualAddress (%p) is NULL or 0",
+ Length, VirtualAddress));
+ return STATUS_INVALID_PARAMETER;
+ }
+
+ MmUnmapIoSpace(VirtualAddress,
+ Length);
+
+ return STATUS_SUCCESS;
+}
+
VgaDevice::VgaDevice(_In_ QxlDod* pQxlDod) : HwDeviceInterface(pQxlDod)
{
+ PAGED_CODE();
m_pQxlDod = pQxlDod;
m_ModeInfo = NULL;
m_ModeCount = 0;
@@ -2310,6 +2287,7 @@ VgaDevice::VgaDevice(_In_ QxlDod* pQxlDod) : HwDeviceInterface(pQxlDod)
VgaDevice::~VgaDevice(void)
{
+ PAGED_CODE();
HWClose();
delete [] reinterpret_cast<BYTE*>(m_ModeInfo);
delete [] reinterpret_cast<BYTE*>(m_ModeNumbers);
@@ -2551,6 +2529,7 @@ NTSTATUS VgaDevice::GetModeList(DXGK_DISPLAY_INFORMATION* pDispInfo)
NTSTATUS VgaDevice::QueryCurrentMode(PVIDEO_MODE RequestedMode)
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_VERBOSE, ("<--- %s\n", __FUNCTION__));
NTSTATUS Status = STATUS_SUCCESS;
UNREFERENCED_PARAMETER(RequestedMode);
@@ -2560,6 +2539,8 @@ NTSTATUS VgaDevice::QueryCurrentMode(PVIDEO_MODE RequestedMode)
NTSTATUS VgaDevice::SetCurrentMode(ULONG Mode)
{
+ PAGED_CODE();
+
NTSTATUS Status = STATUS_SUCCESS;
DbgPrint(TRACE_LEVEL_INFORMATION, ("---> %s Mode = %x\n", __FUNCTION__, Mode));
X86BIOS_REGISTERS regs = {0};
@@ -2576,6 +2557,8 @@ NTSTATUS VgaDevice::SetCurrentMode(ULONG Mode)
NTSTATUS VgaDevice::GetCurrentMode(ULONG* pMode)
{
+ PAGED_CODE();
+
NTSTATUS Status = STATUS_SUCCESS;
DbgPrint(TRACE_LEVEL_INFORMATION, ("---> %s\n", __FUNCTION__));
X86BIOS_REGISTERS regs = {0};
@@ -2592,6 +2575,8 @@ NTSTATUS VgaDevice::GetCurrentMode(ULONG* pMode)
NTSTATUS VgaDevice::HWInit(PCM_RESOURCE_LIST pResList, DXGK_DISPLAY_INFORMATION* pDispInfo)
{
+ PAGED_CODE();
+
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
UNREFERENCED_PARAMETER(pResList);
UNREFERENCED_PARAMETER(pDispInfo);
@@ -2601,13 +2586,17 @@ NTSTATUS VgaDevice::HWInit(PCM_RESOURCE_LIST pResList, DXGK_DISPLAY_INFORMATION*
NTSTATUS VgaDevice::HWClose(void)
{
+ PAGED_CODE();
+
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
DbgPrint(TRACE_LEVEL_VERBOSE, ("<--- %s\n", __FUNCTION__));
return STATUS_SUCCESS;
}
-NTSTATUS VgaDevice::SetPowerState(_In_ DEVICE_POWER_STATE DevicePowerState, DXGK_DISPLAY_INFORMATION* pDispInfo)
+NTSTATUS VgaDevice::SetPowerState(DEVICE_POWER_STATE DevicePowerState, DXGK_DISPLAY_INFORMATION* pDispInfo)
{
+ PAGED_CODE();
+
DbgPrint(TRACE_LEVEL_INFORMATION, ("---> %s\n", __FUNCTION__));
X86BIOS_REGISTERS regs = {0};
@@ -2630,7 +2619,6 @@ NTSTATUS VgaDevice::SetPowerState(_In_ DEVICE_POWER_STATE DevicePowerState, DXG
return STATUS_SUCCESS;
}
-
NTSTATUS
VgaDevice::ExecutePresentDisplayOnly(
_In_ BYTE* DstAddr,
@@ -2903,18 +2891,21 @@ VOID VgaDevice::HWResetDevice(VOID)
NTSTATUS VgaDevice::SetPointerShape(_In_ CONST DXGKARG_SETPOINTERSHAPE* pSetPointerShape)
{
+ PAGED_CODE();
UNREFERENCED_PARAMETER(pSetPointerShape);
return STATUS_NOT_SUPPORTED;
}
NTSTATUS VgaDevice::SetPointerPosition(_In_ CONST DXGKARG_SETPOINTERPOSITION* pSetPointerPosition)
{
+ PAGED_CODE();
UNREFERENCED_PARAMETER(pSetPointerPosition);
return STATUS_SUCCESS;
}
NTSTATUS VgaDevice::Escape(_In_ CONST DXGKARG_ESCAPE* pEscap)
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
DbgPrint(TRACE_LEVEL_VERBOSE, ("<--- %s\n", __FUNCTION__));
return STATUS_NOT_IMPLEMENTED;
@@ -2922,6 +2913,7 @@ NTSTATUS VgaDevice::Escape(_In_ CONST DXGKARG_ESCAPE* pEscap)
QxlDevice::QxlDevice(_In_ QxlDod* pQxlDod) : HwDeviceInterface(pQxlDod)
{
+ PAGED_CODE();
m_pQxlDod = pQxlDod;
m_ModeInfo = NULL;
m_ModeCount = 0;
@@ -2935,6 +2927,7 @@ QxlDevice::QxlDevice(_In_ QxlDod* pQxlDod) : HwDeviceInterface(pQxlDod)
QxlDevice::~QxlDevice(void)
{
+ PAGED_CODE();
HWClose();
delete [] reinterpret_cast<BYTE*>(m_ModeInfo);
delete [] reinterpret_cast<BYTE*>(m_ModeNumbers);
@@ -3108,6 +3101,7 @@ NTSTATUS QxlDevice::GetModeList(DXGK_DISPLAY_INFORMATION* pDispInfo)
NTSTATUS QxlDevice::QueryCurrentMode(PVIDEO_MODE RequestedMode)
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_VERBOSE, ("<--- %s\n", __FUNCTION__));
NTSTATUS Status = STATUS_SUCCESS;
UNREFERENCED_PARAMETER(RequestedMode);
@@ -3116,6 +3110,7 @@ NTSTATUS QxlDevice::QueryCurrentMode(PVIDEO_MODE RequestedMode)
NTSTATUS QxlDevice::SetCurrentMode(ULONG Mode)
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_INFORMATION, ("---> %s - %d: Mode = %d\n", __FUNCTION__, m_Id, Mode));
for (ULONG idx = 0; idx < GetModeCount(); idx++)
{
@@ -3135,6 +3130,7 @@ NTSTATUS QxlDevice::SetCurrentMode(ULONG Mode)
NTSTATUS QxlDevice::GetCurrentMode(ULONG* pMode)
{
+ PAGED_CODE();
NTSTATUS Status = STATUS_SUCCESS;
DbgPrint(TRACE_LEVEL_INFORMATION, ("---> %s\n", __FUNCTION__));
UNREFERENCED_PARAMETER(pMode);
@@ -3142,8 +3138,9 @@ NTSTATUS QxlDevice::GetCurrentMode(ULONG* pMode)
return Status;
}
-NTSTATUS QxlDevice::SetPowerState(_In_ DEVICE_POWER_STATE DevicePowerState, DXGK_DISPLAY_INFORMATION* pDispInfo)
+NTSTATUS QxlDevice::SetPowerState(DEVICE_POWER_STATE DevicePowerState, DXGK_DISPLAY_INFORMATION* pDispInfo)
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
switch (DevicePowerState)
{
@@ -3159,6 +3156,7 @@ NTSTATUS QxlDevice::SetPowerState(_In_ DEVICE_POWER_STATE DevicePowerState, DXGK
NTSTATUS QxlDevice::HWInit(PCM_RESOURCE_LIST pResList, DXGK_DISPLAY_INFORMATION* pDispInfo)
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
PDXGKRNL_INTERFACE pDxgkInterface = m_pQxlDod->GetDxgkInterface();
UINT pci_range = QXL_RAM_RANGE_INDEX;
@@ -3306,6 +3304,7 @@ NTSTATUS QxlDevice::HWInit(PCM_RESOURCE_LIST pResList, DXGK_DISPLAY_INFORMATION*
NTSTATUS QxlDevice::QxlInit(DXGK_DISPLAY_INFORMATION* pDispInfo)
{
+ PAGED_CODE();
NTSTATUS Status = STATUS_SUCCESS;
if (!InitMemSlots()) {
@@ -3333,11 +3332,13 @@ NTSTATUS QxlDevice::QxlInit(DXGK_DISPLAY_INFORMATION* pDispInfo)
void QxlDevice::QxlClose()
{
+ PAGED_CODE();
DestroyMemSlots();
}
void QxlDevice::UnmapMemory(void)
{
+ PAGED_CODE();
PDXGKRNL_INTERFACE pDxgkInterface = m_pQxlDod->GetDxgkInterface();
if (m_IoMapped && m_IoBase)
{
@@ -3365,6 +3366,7 @@ void QxlDevice::UnmapMemory(void)
BOOL QxlDevice::InitMemSlots(void)
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
m_NumMemSlots = m_RomHdr->slots_end;
m_SlotGenBits = m_RomHdr->slot_gen_bits;
@@ -3384,6 +3386,7 @@ BOOL QxlDevice::InitMemSlots(void)
void QxlDevice::DestroyMemSlots(void)
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
delete [] reinterpret_cast<BYTE*>(m_MemSlots);
m_MemSlots = NULL;
@@ -3392,6 +3395,7 @@ void QxlDevice::DestroyMemSlots(void)
void QxlDevice::CreatePrimarySurface(PVIDEO_MODE_INFORMATION pModeInfo)
{
+ PAGED_CODE();
QXLSurfaceCreate *primary_surface_create;
DbgPrint(TRACE_LEVEL_INFORMATION, ("---> %s - %d: (%d x %d)\n", __FUNCTION__, m_Id,
pModeInfo->VisScreenWidth, pModeInfo->VisScreenHeight));
@@ -3414,6 +3418,7 @@ void QxlDevice::CreatePrimarySurface(PVIDEO_MODE_INFORMATION pModeInfo)
void QxlDevice::DestroyPrimarySurface(void)
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
// AsyncIo(QXL_IO_DESTROY_PRIMARY_ASYNC, 0);
SyncIo(QXL_IO_DESTROY_PRIMARY, 0);
@@ -3422,6 +3427,7 @@ void QxlDevice::DestroyPrimarySurface(void)
_inline QXLPHYSICAL QxlDevice::PA(PVOID virt, UINT8 slot_id)
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_VERBOSE, ("<--> %s\n", __FUNCTION__));
MemSlot *pSlot = &m_MemSlots[slot_id];;
return pSlot->high_bits | ((UINT64)virt - pSlot->start_virt_addr);
@@ -3429,6 +3435,7 @@ _inline QXLPHYSICAL QxlDevice::PA(PVOID virt, UINT8 slot_id)
_inline UINT64 QxlDevice::VA(QXLPHYSICAL paddr, UINT8 slot_id)
{
+ PAGED_CODE();
UINT64 virt;
MemSlot *pSlot = &m_MemSlots[slot_id];;
@@ -3441,6 +3448,7 @@ _inline UINT64 QxlDevice::VA(QXLPHYSICAL paddr, UINT8 slot_id)
void QxlDevice::SetupHWSlot(UINT8 Idx, MemSlot *pSlot)
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
m_RamHdr->mem_slot.mem_start = pSlot->start_phys_addr;
m_RamHdr->mem_slot.mem_end = pSlot->end_phys_addr;
@@ -3450,6 +3458,7 @@ void QxlDevice::SetupHWSlot(UINT8 Idx, MemSlot *pSlot)
BOOL QxlDevice::CreateEvents()
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
KeInitializeEvent(&m_DisplayEvent,
SynchronizationEvent,
@@ -3471,6 +3480,7 @@ BOOL QxlDevice::CreateEvents()
BOOL QxlDevice::CreateRings()
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
m_CommandRing = &(m_RamHdr->cmd_ring);
m_CursorRing = &(m_RamHdr->cursor_ring);
@@ -3481,6 +3491,7 @@ BOOL QxlDevice::CreateRings()
void QxlDevice::AsyncIo(UCHAR Port, UCHAR Value)
{
+ PAGED_CODE();
LARGE_INTEGER timeout;
BOOLEAN locked = FALSE;
locked = WaitForObject(&m_IoLock, NULL);
@@ -3492,6 +3503,7 @@ void QxlDevice::AsyncIo(UCHAR Port, UCHAR Value)
void QxlDevice::SyncIo(UCHAR Port, UCHAR Value)
{
+ PAGED_CODE();
BOOLEAN locked = FALSE;
locked = WaitForObject(&m_IoLock, NULL);
WRITE_PORT_UCHAR(m_IoBase + Port, Value);
@@ -3500,6 +3512,7 @@ void QxlDevice::SyncIo(UCHAR Port, UCHAR Value)
UINT8 QxlDevice::SetupMemSlot(UINT8 Idx, UINT64 pastart, UINT64 paend, UINT64 vastart, UINT64 vaend)
{
+ PAGED_CODE();
UINT64 high_bits;
MemSlot *pSlot;
UINT8 slot_index;
@@ -3525,6 +3538,7 @@ UINT8 QxlDevice::SetupMemSlot(UINT8 Idx, UINT64 pastart, UINT64 paend, UINT64 va
BOOL QxlDevice::CreateMemSlots(void)
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s 3\n", __FUNCTION__));
UINT64 len = m_RomHdr->surface0_area_size + m_RomHdr->num_pages * PAGE_SIZE;
m_MainMemSlot = SetupMemSlot(0,
@@ -3544,6 +3558,7 @@ BOOL QxlDevice::CreateMemSlots(void)
void QxlDevice::InitDeviceMemoryResources(void)
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s num_pages = %d\n", __FUNCTION__, m_RomHdr->num_pages));
InitMspace(MSPACE_TYPE_DEVRAM, (m_RamStart + m_RomHdr->surface0_area_size), (size_t)(m_RomHdr->num_pages * PAGE_SIZE));
InitMspace(MSPACE_TYPE_VRAM, m_VRamStart, m_VRamSize);
@@ -3552,6 +3567,7 @@ void QxlDevice::InitDeviceMemoryResources(void)
void QxlDevice::InitMonitorConfig(void)
{
+ PAGED_CODE();
size_t config_size = sizeof(QXLMonitorsConfig) + sizeof(QXLHead);
m_monitor_config = (QXLMonitorsConfig*) AllocMem(MSPACE_TYPE_DEVRAM, config_size, TRUE);
RtlZeroMemory(m_monitor_config, config_size);
@@ -3560,9 +3576,9 @@ void QxlDevice::InitMonitorConfig(void)
*m_monitor_config_pa = PA(m_monitor_config, m_MainMemSlot);
}
-
void QxlDevice::InitMspace(UINT32 mspace_type, UINT8 *start, size_t capacity)
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s type = %d, start = %p, capacity = %d\n", __FUNCTION__, mspace_type, start, capacity));
m_MSInfo[mspace_type]._mspace = create_mspace_with_base(start, capacity, 0, this);
m_MSInfo[mspace_type].mspace_start = start;
@@ -3754,6 +3770,7 @@ QxlDevice::ExecutePresentDisplayOnly(
void QxlDevice::WaitForReleaseRing(void)
{
+ PAGED_CODE();
int wait;
DbgPrint(TRACE_LEVEL_VERBOSE, ("--->%s\n", __FUNCTION__));
@@ -3786,6 +3803,7 @@ void QxlDevice::WaitForReleaseRing(void)
void QxlDevice::FlushReleaseRing()
{
+ PAGED_CODE();
UINT64 output;
int notify;
int num_to_release = 50;
@@ -3817,6 +3835,7 @@ void QxlDevice::FlushReleaseRing()
void QxlDevice::EmptyReleaseRing()
{
+ PAGED_CODE();
BOOLEAN locked = FALSE;
locked = WaitForObject(&m_MemLock, NULL);
while (m_FreeOutputs || !SPICE_RING_IS_EMPTY(m_ReleaseRing)) {
@@ -3827,6 +3846,7 @@ void QxlDevice::EmptyReleaseRing()
UINT64 QxlDevice::ReleaseOutput(UINT64 output_id)
{
+ PAGED_CODE();
QXLOutput *output = (QXLOutput *)output_id;
Resource **now;
Resource **end;
@@ -3846,6 +3866,7 @@ UINT64 QxlDevice::ReleaseOutput(UINT64 output_id)
void *QxlDevice::AllocMem(UINT32 mspace_type, size_t size, BOOL force)
{
+ PAGED_CODE();
PVOID ptr;
BOOLEAN locked = FALSE;
@@ -3894,6 +3915,7 @@ void *QxlDevice::AllocMem(UINT32 mspace_type, size_t size, BOOL force)
void QxlDevice::FreeMem(UINT32 mspace_type, void *ptr)
{
+ PAGED_CODE();
ASSERT(m_MSInfo[mspace_type]._mspace);
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
@@ -3914,6 +3936,7 @@ void QxlDevice::FreeMem(UINT32 mspace_type, void *ptr)
QXLDrawable *QxlDevice::GetDrawable()
{
+ PAGED_CODE();
QXLOutput *output;
output = (QXLOutput *)AllocMem(MSPACE_TYPE_DEVRAM, sizeof(QXLOutput) + sizeof(QXLDrawable), TRUE);
@@ -3926,6 +3949,7 @@ QXLDrawable *QxlDevice::GetDrawable()
QXLCursorCmd *QxlDevice::CursorCmd()
{
+ PAGED_CODE();
QXLCursorCmd *cursor_cmd;
QXLOutput *output;
@@ -3941,6 +3965,7 @@ QXLCursorCmd *QxlDevice::CursorCmd()
BOOL QxlDevice::SetClip(const RECT *clip, QXLDrawable *drawable)
{
+ PAGED_CODE();
Resource *rects_res;
if (clip == NULL) {
@@ -3970,12 +3995,14 @@ BOOL QxlDevice::SetClip(const RECT *clip, QXLDrawable *drawable)
void QxlDevice::AddRes(QXLOutput *output, Resource *res)
{
+ PAGED_CODE();
res->refs++;
output->resources[output->num_res++] = res;
}
void QxlDevice::DrawableAddRes(QXLDrawable *drawable, Resource *res)
{
+ PAGED_CODE();
QXLOutput *output;
output = (QXLOutput *)((UINT8 *)drawable - sizeof(QXLOutput));
@@ -3984,6 +4011,7 @@ void QxlDevice::DrawableAddRes(QXLDrawable *drawable, Resource *res)
void QxlDevice::CursorCmdAddRes(QXLCursorCmd *cmd, Resource *res)
{
+ PAGED_CODE();
QXLOutput *output;
output = (QXLOutput *)((UINT8 *)cmd - sizeof(QXLOutput));
@@ -3992,6 +4020,7 @@ void QxlDevice::CursorCmdAddRes(QXLCursorCmd *cmd, Resource *res)
void QxlDevice::FreeClipRectsEx(Resource *res)
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_VERBOSE, ("<--> %s\n", __FUNCTION__));
QxlDevice* pqxl = (QxlDevice*)res->ptr;
pqxl->FreeClipRects(res);
@@ -3999,6 +4028,7 @@ void QxlDevice::FreeClipRectsEx(Resource *res)
void QxlDevice::FreeClipRects(Resource *res)
{
+ PAGED_CODE();
QXLPHYSICAL chunk_phys;
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
@@ -4014,6 +4044,7 @@ void QxlDevice::FreeClipRects(Resource *res)
void QxlDevice::FreeBitmapImageEx(Resource *res)
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_VERBOSE, ("<--> %s\n", __FUNCTION__));
QxlDevice* pqxl = (QxlDevice*)res->ptr;
pqxl->FreeBitmapImage(res);
@@ -4021,6 +4052,7 @@ void QxlDevice::FreeBitmapImageEx(Resource *res)
void QxlDevice::FreeBitmapImage(Resource *res)
{
+ PAGED_CODE();
InternalImage *internal;
QXLPHYSICAL chunk_phys;
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
@@ -4040,6 +4072,7 @@ void QxlDevice::FreeBitmapImage(Resource *res)
void QxlDevice::FreeCursorEx(Resource *res)
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_VERBOSE, ("<--> %s\n", __FUNCTION__));
QxlDevice* pqxl = (QxlDevice*)res->ptr;
pqxl->FreeCursor(res);
@@ -4047,6 +4080,7 @@ void QxlDevice::FreeCursorEx(Resource *res)
void QxlDevice::FreeCursor(Resource *res)
{
+ PAGED_CODE();
QXLPHYSICAL chunk_phys;
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
@@ -4063,6 +4097,7 @@ void QxlDevice::FreeCursor(Resource *res)
QXLDrawable *QxlDevice::Drawable(UINT8 type, CONST RECT *area, CONST RECT *clip, UINT32 surface_id)
{
+ PAGED_CODE();
QXLDrawable *drawable;
ASSERT(area);
@@ -4088,7 +4123,9 @@ QXLDrawable *QxlDevice::Drawable(UINT8 type, CONST RECT *area, CONST RECT *clip,
return drawable;
}
-void QxlDevice::PushDrawable(QXLDrawable *drawable) {
+void QxlDevice::PushDrawable(QXLDrawable *drawable)
+{
+ PAGED_CODE();
QXLCommand *cmd;
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
@@ -4105,6 +4142,7 @@ void QxlDevice::PushDrawable(QXLDrawable *drawable) {
void QxlDevice::PushCursorCmd(QXLCursorCmd *cursor_cmd)
{
+ PAGED_CODE();
QXLCommand *cmd;
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
@@ -4126,6 +4164,7 @@ VOID QxlDevice::SetImageId(InternalImage *internal,
LONG height,
UINT8 format, UINT32 key)
{
+ PAGED_CODE();
UINT32 image_info = IMAGE_HASH_INIT_VAL(width, height, format);
if (cache_me) {
@@ -4145,6 +4184,7 @@ VOID QxlDevice::BltBits (
UINT NumRects,
_In_reads_(NumRects) CONST RECT *pRects)
{
+ PAGED_CODE();
QXLDrawable *drawable;
Resource *image_res;
InternalImage *internal;
@@ -4160,6 +4200,7 @@ VOID QxlDevice::BltBits (
if (!(drawable = Drawable(QXL_DRAW_COPY, pRects, NULL, 0))) {
DbgPrint(TRACE_LEVEL_ERROR, ("Cannot get Drawable.\n"));
+ return;
}
CONST RECT* pRect = &pRects[0];
@@ -4241,6 +4282,7 @@ VOID QxlDevice::PutBytesAlign(QXLDataChunk **chunk_ptr, UINT8 **now_ptr,
UINT8 **end_ptr, UINT8 *src, int size,
size_t alloc_size, uint32_t alignment)
{
+ PAGED_CODE();
QXLDataChunk *chunk = *chunk_ptr;
UINT8 *now = *now_ptr;
UINT8 *end = *end_ptr;
@@ -4305,6 +4347,7 @@ VOID QxlDevice::BlackOutScreen(CURRENT_BDD_MODE* pCurrentBddMod)
NTSTATUS QxlDevice::HWClose(void)
{
+ PAGED_CODE();
QxlClose();
UnmapMemory();
return STATUS_SUCCESS;
@@ -4312,6 +4355,7 @@ NTSTATUS QxlDevice::HWClose(void)
NTSTATUS QxlDevice::SetPointerShape(_In_ CONST DXGKARG_SETPOINTERSHAPE* pSetPointerShape)
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s flag = %x\n", __FUNCTION__, pSetPointerShape->Flags.Value));
DbgPrint(TRACE_LEVEL_INFORMATION, ("<--> %s flag = %d pitch = %d, pixels = %p, id = %d, w = %d, h = %d, x = %d, y = %d\n", __FUNCTION__,
pSetPointerShape->Flags.Value,
@@ -4394,6 +4438,7 @@ NTSTATUS QxlDevice::SetPointerShape(_In_ CONST DXGKARG_SETPOINTERSHAPE* pSetPoi
NTSTATUS QxlDevice::SetPointerPosition(_In_ CONST DXGKARG_SETPOINTERPOSITION* pSetPointerPosition)
{
+ PAGED_CODE();
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
DbgPrint(TRACE_LEVEL_INFORMATION, ("<--> %s flag = %d id = %d, x = %d, y = %d\n", __FUNCTION__,
pSetPointerPosition->Flags.Value,
@@ -4417,6 +4462,7 @@ NTSTATUS QxlDevice::SetPointerPosition(_In_ CONST DXGKARG_SETPOINTERPOSITION* pS
NTSTATUS QxlDevice::UpdateChildStatus(BOOLEAN connect)
{
+ PAGED_CODE();
NTSTATUS Status(STATUS_SUCCESS);
DXGK_CHILD_STATUS ChildStatus;
PDXGKRNL_INTERFACE pDXGKInterface(m_pQxlDod->GetDxgkInterface());
@@ -4430,6 +4476,7 @@ NTSTATUS QxlDevice::UpdateChildStatus(BOOLEAN connect)
NTSTATUS QxlDevice::SetCustomDisplay(QXLEscapeSetCustomDisplay* custom_display)
{
+ PAGED_CODE();
NTSTATUS status;
UINT xres = custom_display->xres;
UINT yres = custom_display->yres;
@@ -4454,6 +4501,7 @@ NTSTATUS QxlDevice::SetCustomDisplay(QXLEscapeSetCustomDisplay* custom_display)
void QxlDevice::SetMonitorConfig(QXLHead * monitor_config)
{
+ PAGED_CODE();
m_monitor_config->count = 1;
m_monitor_config->max_allowed = 1;
@@ -4469,6 +4517,7 @@ void QxlDevice::SetMonitorConfig(QXLHead * monitor_config)
NTSTATUS QxlDevice::Escape(_In_ CONST DXGKARG_ESCAPE* pEscape)
{
+ PAGED_CODE();
size_t data_size(sizeof(int));
QXL_ESCAPE* pQXLEscape((QXL_ESCAPE*) pEscape->pPrivateDriverData);
NTSTATUS status(STATUS_SUCCESS);
@@ -4510,6 +4559,7 @@ NTSTATUS QxlDevice::Escape(_In_ CONST DXGKARG_ESCAPE* pEscape)
VOID QxlDevice::WaitForCmdRing()
{
+ PAGED_CODE();
int wait;
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
@@ -4526,6 +4576,7 @@ VOID QxlDevice::WaitForCmdRing()
VOID QxlDevice::PushCmd()
{
+ PAGED_CODE();
int notify;
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
SPICE_RING_PUSH(m_CommandRing, notify);
@@ -4537,6 +4588,7 @@ VOID QxlDevice::PushCmd()
VOID QxlDevice::WaitForCursorRing(VOID)
{
+ PAGED_CODE();
int wait;
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
@@ -4559,6 +4611,7 @@ VOID QxlDevice::WaitForCursorRing(VOID)
VOID QxlDevice::PushCursor(VOID)
{
+ PAGED_CODE();
int notify;
DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
SPICE_RING_PUSH(m_CursorRing, notify);
@@ -4665,7 +4718,7 @@ BOOLEAN HwDeviceInterface::InterruptRoutine(_In_ PDXGKRNL_INTERFACE pDxgkInterfa
}
}
-VOID HwDeviceInterface::DpcRoutine(PDXGKRNL_INTERFACE pDxgkInterface)
+VOID HwDeviceInterface::DpcRoutine(_In_ PDXGKRNL_INTERFACE pDxgkInterface)
{
QxlDevice * qxl_device;
VgaDevice * vga_device;
@@ -4707,23 +4760,12 @@ VOID HwDeviceInterface::ResetDevice(void)
}
}
-#pragma code_seg(pop) //end non-paged code
-VOID QxlDevice::UpdateArea(CONST RECT* area, UINT32 surface_id)
-{
- DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
- CopyRect(&m_RamHdr->update_area, area);
- m_RamHdr->update_surface = surface_id;
-// AsyncIo(QXL_IO_UPDATE_AREA_ASYNC, 0);
- SyncIo(QXL_IO_UPDATE_AREA, 0);
- DbgPrint(TRACE_LEVEL_VERBOSE, ("<--- %s\n", __FUNCTION__));
-}
-
-BOOLEAN QxlDevice:: DpcCallbackEx(PVOID ptr)
+BOOLEAN QxlDevice::DpcCallbackEx(PVOID ptr)
{
DbgPrint(TRACE_LEVEL_VERBOSE, ("<--> %s\n", __FUNCTION__));
PDPC_CB_CONTEXT ctx = (PDPC_CB_CONTEXT) ptr;
- QxlDevice* pqxl = (QxlDevice*)ctx->ptr;
+ QxlDevice* pqxl = (QxlDevice*) ctx->ptr;
pqxl->DpcCallback(ctx);
return TRUE;
}
@@ -4734,9 +4776,22 @@ VOID QxlDevice::DpcCallback(PDPC_CB_CONTEXT ctx)
m_Pending = 0;
}
+#pragma code_seg(pop) //end non-paged code
+
+VOID QxlDevice::UpdateArea(CONST RECT* area, UINT32 surface_id)
+{
+ PAGED_CODE();
+ DbgPrint(TRACE_LEVEL_VERBOSE, ("---> %s\n", __FUNCTION__));
+ CopyRect(&m_RamHdr->update_area, area);
+ m_RamHdr->update_surface = surface_id;
+// AsyncIo(QXL_IO_UPDATE_AREA_ASYNC, 0);
+ SyncIo(QXL_IO_UPDATE_AREA, 0);
+ DbgPrint(TRACE_LEVEL_VERBOSE, ("<--- %s\n", __FUNCTION__));
+}
UINT SpiceFromPixelFormat(D3DDDIFORMAT Format)
{
+ PAGED_CODE();
switch (Format)
{
case D3DDDIFMT_UNKNOWN:
@@ -4748,3 +4803,4 @@ UINT SpiceFromPixelFormat(D3DDDIFORMAT Format)
default: QXL_LOG_ASSERTION1("Unknown D3DDDIFORMAT 0x%I64x", Format); return 0;
}
}
+#pragma code_seg(pop) \ No newline at end of file
diff --git a/qxldod/mspace.c b/qxldod/mspace.cpp
index d0ba123..28c9f96 100755..100644
--- a/qxldod/mspace.c
+++ b/qxldod/mspace.cpp
@@ -1828,6 +1828,7 @@ static void* prepend_alloc(mstate m, char* newbase, char* oldbase,
qsize += nsize;
}
set_free_with_pinuse(q, qsize, oldfirst);
+#pragma warning(suppress: 28182) /* code analysis noise*/
insert_chunk(m, q, qsize);
check_free_chunk(m, q);
}
@@ -1909,6 +1910,7 @@ static void* tmalloc_large(mstate m, size_t nb) {
else {
set_size_and_pinuse_of_inuse_chunk(m, v, nb);
set_size_and_pinuse_of_free_chunk(r, rsize);
+#pragma warning(suppress: 28182) /* code analysis noise*/
insert_chunk(m, r, rsize);
}
return chunk2mem(v);
diff --git a/qxldod/qxldod.vcxproj b/qxldod/qxldod.vcxproj
index c423971..ddd3fe0 100755
--- a/qxldod/qxldod.vcxproj
+++ b/qxldod/qxldod.vcxproj
@@ -1,44 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Win8.1 Debug|Win32">
- <Configuration>Win8.1 Debug</Configuration>
+ <ProjectConfiguration Include="Win10 Debug|Win32">
+ <Configuration>Win10 Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Debug|Win32">
- <Configuration>Win8 Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8.1 Release|Win32">
- <Configuration>Win8.1 Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Release|Win32">
- <Configuration>Win8 Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8.1 Debug|x64">
- <Configuration>Win8.1 Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Debug|x64">
- <Configuration>Win8 Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Win8.1 Release|x64">
- <Configuration>Win8.1 Release</Configuration>
+ <ProjectConfiguration Include="Win10 Debug|x64">
+ <Configuration>Win10 Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Win8 Release|x64">
- <Configuration>Win8 Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Windows 10 Debug|Win32">
- <Configuration>Windows 10 Debug</Configuration>
+ <ProjectConfiguration Include="Win10 Release|Win32">
+ <Configuration>Win10 Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
- <ProjectConfiguration Include="Windows 10 Debug|x64">
- <Configuration>Windows 10 Debug</Configuration>
+ <ProjectConfiguration Include="Win10 Release|x64">
+ <Configuration>Win10 Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
@@ -59,62 +35,33 @@
<DriverType>WDM</DriverType>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ALLOW_DATE_TIME>1</ALLOW_DATE_TIME>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'" Label="Configuration">
- <TargetVersion>Windows8</TargetVersion>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ALLOW_DATE_TIME>1</ALLOW_DATE_TIME>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ALLOW_DATE_TIME>1</ALLOW_DATE_TIME>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|Win32'" Label="Configuration">
- <TargetVersion>WindowsV6.3</TargetVersion>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'" Label="Configuration">
+ <TargetVersion>
+ </TargetVersion>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ALLOW_DATE_TIME>1</ALLOW_DATE_TIME>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'" Label="Configuration">
- <TargetVersion>Windows8</TargetVersion>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'" Label="Configuration">
+ <TargetVersion />
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ALLOW_DATE_TIME>1</ALLOW_DATE_TIME>
+ <DriverTargetPlatform>Universal</DriverTargetPlatform>
</PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'">
- <TargetVersion>WindowsV6.3</TargetVersion>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'" Label="Configuration">
- <TargetVersion>Windows8</TargetVersion>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'">
- <TargetVersion>WindowsV6.3</TargetVersion>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'" Label="Configuration">
+ <TargetVersion>
+ </TargetVersion>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|x64'" Label="Configuration">
- <TargetVersion>WindowsV6.3</TargetVersion>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'" Label="Configuration">
+ <TargetVersion>
+ </TargetVersion>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'" Label="Configuration">
- <TargetVersion>Windows8</TargetVersion>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ALLOW_DATE_TIME>1</ALLOW_DATE_TIME>
- </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
@@ -122,127 +69,30 @@
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'">
- <OutDir>objchk_win8_x86\i386\</OutDir>
- <IntDir>objchk_win8_x86\i386\</IntDir>
- <TargetName>qxldod</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'">
- <OutDir>objchk_win8_x86\i386\</OutDir>
- <IntDir>objchk_win8_x86\i386\</IntDir>
- <TargetName>qxldod</TargetName>
- </PropertyGroup>
<PropertyGroup>
<DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'">
- <OutDir>objfre_win8_x86\i386\</OutDir>
- <IntDir>objfre_win8_x86\i386\</IntDir>
- <TargetName>qxldod</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'">
<OutDir>objfre_win8_x86\i386\</OutDir>
<IntDir>objfre_win8_x86\i386\</IntDir>
<TargetName>qxldod</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'">
<OutDir>objfre_win8_x86\i386\</OutDir>
<IntDir>objfre_win8_x86\i386\</IntDir>
<TargetName>qxldod</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'">
<OutDir>objfre_win8_amd64\amd64\</OutDir>
<IntDir>objfre_win8_amd64\amd64\</IntDir>
<TargetName>qxldod</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|x64'">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'">
<OutDir>objfre_win8_amd64\amd64\</OutDir>
<IntDir>objfre_win8_amd64\amd64\</IntDir>
<TargetName>qxldod</TargetName>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'">
- <OutDir>objfre_win8_amd64\amd64\</OutDir>
- <IntDir>objfre_win8_amd64\amd64\</IntDir>
- <TargetName>qxldod</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'">
- <OutDir>objchk_win8_amd64\amd64\</OutDir>
- <IntDir>objchk_win8_amd64\amd64\</IntDir>
- <TargetName>qxldod</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'">
- <OutDir>objchk_win8_amd64\amd64\</OutDir>
- <IntDir>objchk_win8_amd64\amd64\</IntDir>
- <TargetName>qxldod</TargetName>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\displib.lib;$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\hal.lib</AdditionalDependencies>
- </Link>
- <ResourceCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories>
- </ResourceCompile>
- <ClCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH);.\Include</AdditionalIncludeDirectories>
- <WarningLevel>Level3</WarningLevel>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <PostBuildEvent>
- <Command>Inf2Cat /driver:$(OutDir) /os:8_X86,6_3_X86</Command>
- </PostBuildEvent>
- <Inf>
- <EnableVerbose>true</EnableVerbose>
- <KmdfVersionNumber />
- <UmdfVersionNumber />
- </Inf>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\displib.lib;$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\hal.lib</AdditionalDependencies>
- </Link>
- <ResourceCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories>
- </ResourceCompile>
- <ClCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH);.\Include</AdditionalIncludeDirectories>
- <WarningLevel>Level3</WarningLevel>
- <ExceptionHandling />
- </ClCompile>
- <PostBuildEvent>
- <Command>Inf2Cat /driver:$(OutDir) /os:8_X86,6_3_X86</Command>
- </PostBuildEvent>
- <Inf>
- <KmdfVersionNumber />
- </Inf>
- <Inf>
- <UmdfVersionNumber />
- </Inf>
- <Inf>
- <EnableVerbose>true</EnableVerbose>
- </Inf>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\displib.lib;$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\hal.lib</AdditionalDependencies>
- </Link>
- <ResourceCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories>
- </ResourceCompile>
- <ClCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH);.\Include</AdditionalIncludeDirectories>
- <WarningLevel>Level3</WarningLevel>
- </ClCompile>
- <PostBuildEvent>
- <Command>Inf2Cat /driver:$(OutDir) /os:8_X86,6_3_X86</Command>
- </PostBuildEvent>
- <Inf>
- <EnableVerbose>true</EnableVerbose>
- <KmdfVersionNumber />
- <UmdfVersionNumber />
- </Inf>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\displib.lib;$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\hal.lib</AdditionalDependencies>
</Link>
@@ -264,7 +114,7 @@
</UmdfVersionNumber>
</Inf>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\displib.lib;$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\hal.lib</AdditionalDependencies>
</Link>
@@ -280,69 +130,13 @@
</PostBuildEvent>
<Inf>
<EnableVerbose>true</EnableVerbose>
- <KmdfVersionNumber />
- <UmdfVersionNumber />
- </Inf>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\displib.lib;$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\hal.lib</AdditionalDependencies>
- </Link>
- <ResourceCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories>
- </ResourceCompile>
- <ClCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH);.\Include</AdditionalIncludeDirectories>
- </ClCompile>
- <PostBuildEvent>
- <Command>Inf2Cat /driver:$(OutDir) /os:8_X64,Server8_X64,Server6_3_X64,6_3_X64</Command>
- </PostBuildEvent>
- <Inf>
- <EnableVerbose>true</EnableVerbose>
- <KmdfVersionNumber />
- <UmdfVersionNumber />
- </Inf>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\displib.lib;$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\hal.lib</AdditionalDependencies>
- </Link>
- <ResourceCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories>
- </ResourceCompile>
- <ClCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH);.\Include</AdditionalIncludeDirectories>
- </ClCompile>
- <PostBuildEvent>
- <Command>Inf2Cat /driver:$(OutDir) /os:8_X64,Server8_X64,Server6_3_X64,6_3_X64</Command>
- </PostBuildEvent>
- <Inf>
- <EnableVerbose>true</EnableVerbose>
- <KmdfVersionNumber />
- <UmdfVersionNumber />
- </Inf>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\displib.lib;$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\hal.lib</AdditionalDependencies>
- </Link>
- <ResourceCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH)</AdditionalIncludeDirectories>
- </ResourceCompile>
- <ClCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);$(SDK_INC_PATH);.\Include</AdditionalIncludeDirectories>
- <WarningLevel>Level3</WarningLevel>
- </ClCompile>
- <PostBuildEvent>
- <Command>Inf2Cat /driver:$(OutDir) /os:8_X64,Server8_X64,Server6_3_X64,6_3_X64</Command>
- </PostBuildEvent>
- <Inf>
- <EnableVerbose>true</EnableVerbose>
- <KmdfVersionNumber />
- <UmdfVersionNumber />
+ <KmdfVersionNumber>
+ </KmdfVersionNumber>
+ <UmdfVersionNumber>
+ </UmdfVersionNumber>
</Inf>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Windows 10 Debug|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\displib.lib;$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\hal.lib</AdditionalDependencies>
</Link>
@@ -364,7 +158,7 @@
</UmdfVersionNumber>
</Inf>
</ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'">
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'">
<Link>
<AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\displib.lib;$(DDK_LIB_PATH)\ntoskrnl.lib;$(DDK_LIB_PATH)\hal.lib</AdditionalDependencies>
</Link>
@@ -380,8 +174,10 @@
</PostBuildEvent>
<Inf>
<EnableVerbose>true</EnableVerbose>
- <KmdfVersionNumber />
- <UmdfVersionNumber />
+ <KmdfVersionNumber>
+ </KmdfVersionNumber>
+ <UmdfVersionNumber>
+ </UmdfVersionNumber>
</Inf>
</ItemDefinitionGroup>
<ItemGroup>
@@ -397,7 +193,7 @@
<ItemGroup>
<ClCompile Include="BaseObject.cpp" />
<ClCompile Include="driver.cpp" />
- <ClCompile Include="mspace.c" />
+ <ClCompile Include="mspace.cpp" />
<ClCompile Include="QxlDod.cpp" />
</ItemGroup>
<ItemGroup>
diff --git a/qxldod/qxldod.vcxproj.filters b/qxldod/qxldod.vcxproj.filters
index 1ba05af..6e241a2 100755
--- a/qxldod/qxldod.vcxproj.filters
+++ b/qxldod/qxldod.vcxproj.filters
@@ -42,7 +42,7 @@
<ClCompile Include="QxlDod.cpp">
<Filter>Source Files</Filter>
</ClCompile>
- <ClCompile Include="mspace.c">
+ <ClCompile Include="mspace.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>