mirror of
https://github.com/reactos/reactos.git
synced 2024-11-01 04:11:30 +00:00
[VIDEOPRT] Allow conflicting resources if this is the video base driver
CORE-18960
This commit is contained in:
parent
84f423f030
commit
08a6834075
|
@ -24,8 +24,18 @@
|
|||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
extern BOOLEAN VpBaseVideo;
|
||||
|
||||
/* PRIVATE FUNCTIONS **********************************************************/
|
||||
|
||||
static BOOLEAN
|
||||
IntIsVgaSaveDriver(
|
||||
IN PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension)
|
||||
{
|
||||
UNICODE_STRING VgaSave = RTL_CONSTANT_STRING(L"\\Driver\\VgaSave");
|
||||
return RtlEqualUnicodeString(&VgaSave, &DeviceExtension->DriverObject->DriverName, TRUE);
|
||||
}
|
||||
|
||||
NTSTATUS NTAPI
|
||||
IntVideoPortGetLegacyResources(
|
||||
IN PVIDEO_PORT_DRIVER_EXTENSION DriverExtension,
|
||||
|
@ -994,6 +1004,16 @@ VideoPortVerifyAccessRanges(
|
|||
|
||||
ExFreePoolWithTag(ResourceList, TAG_VIDEO_PORT);
|
||||
|
||||
/* If VgaSave driver is conflicting and we don't explicitely want
|
||||
* to use it, ignore the problem (because win32k will try to use
|
||||
* this driver only if all other ones are failing). */
|
||||
if (Status == STATUS_CONFLICTING_ADDRESSES &&
|
||||
IntIsVgaSaveDriver(DeviceExtension) &&
|
||||
!VpBaseVideo)
|
||||
{
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
if (!NT_SUCCESS(Status) || ConflictDetected)
|
||||
return ERROR_INVALID_PARAMETER;
|
||||
else
|
||||
|
|
Loading…
Reference in a new issue