mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 01:55:19 +00:00
Moved to drivers\dd\videoprt
svn path=/trunk/; revision=4153
This commit is contained in:
parent
e942503f49
commit
7f3777d9ad
7 changed files with 0 additions and 1001 deletions
|
@ -1,4 +0,0 @@
|
||||||
vidport.coff
|
|
||||||
*.o
|
|
||||||
*.sym
|
|
||||||
*.sys
|
|
|
@ -1,15 +0,0 @@
|
||||||
# $Id: makefile,v 1.15 2001/08/21 20:13:12 chorns Exp $
|
|
||||||
|
|
||||||
PATH_TO_TOP = ../../..
|
|
||||||
|
|
||||||
TARGET_TYPE = export_driver
|
|
||||||
|
|
||||||
TARGET_NAME = vidport
|
|
||||||
|
|
||||||
TARGET_CFLAGS =
|
|
||||||
|
|
||||||
TARGET_OBJECTS = vidport.o
|
|
||||||
|
|
||||||
include $(PATH_TO_TOP)/rules.mak
|
|
||||||
|
|
||||||
include $(TOOLS_PATH)/helper.mk
|
|
|
@ -1,806 +0,0 @@
|
||||||
/* $Id: vidport.c,v 1.25 2002/09/08 10:22:08 chorns Exp $
|
|
||||||
*
|
|
||||||
* VideoPort driver
|
|
||||||
* Written by Rex Jolliff
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
|
||||||
#include <ddk/ntddvid.h>
|
|
||||||
|
|
||||||
#include "../../../ntoskrnl/include/internal/v86m.h"
|
|
||||||
|
|
||||||
#include "vidport.h"
|
|
||||||
|
|
||||||
#define NDEBUG
|
|
||||||
#include <debug.h>
|
|
||||||
|
|
||||||
//#define UNIMPLEMENTED do {DbgPrint("%s:%d: Function not implemented", __FILE__, __LINE__); for(;;);} while (0)
|
|
||||||
|
|
||||||
#define VERSION "0.0.0"
|
|
||||||
|
|
||||||
static VOID STDCALL VidStartIo(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp);
|
|
||||||
static NTSTATUS STDCALL VidDispatchOpenClose(IN PDEVICE_OBJECT pDO, IN PIRP Irp);
|
|
||||||
static NTSTATUS STDCALL VidDispatchDeviceControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp);
|
|
||||||
|
|
||||||
static BOOLEAN CsrssInitialized = FALSE;
|
|
||||||
static HANDLE CsrssHandle = 0;
|
|
||||||
static struct _EPROCESS* Csrss = NULL;
|
|
||||||
|
|
||||||
PBYTE ReturnCsrssAddress(void)
|
|
||||||
{
|
|
||||||
return (PBYTE)Csrss;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ------------------------------------------------------- Public Interface
|
|
||||||
|
|
||||||
// DriverEntry
|
|
||||||
//
|
|
||||||
// DESCRIPTION:
|
|
||||||
// This function initializes the driver.
|
|
||||||
//
|
|
||||||
// RUN LEVEL:
|
|
||||||
// PASSIVE_LEVEL
|
|
||||||
//
|
|
||||||
// ARGUMENTS:
|
|
||||||
// IN PDRIVER_OBJECT DriverObject System allocated Driver Object
|
|
||||||
// for this driver
|
|
||||||
// IN PUNICODE_STRING RegistryPath Name of registry driver service
|
|
||||||
// key
|
|
||||||
//
|
|
||||||
// RETURNS:
|
|
||||||
// NTSTATUS
|
|
||||||
|
|
||||||
STDCALL NTSTATUS
|
|
||||||
DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
|
||||||
IN PUNICODE_STRING RegistryPath)
|
|
||||||
{
|
|
||||||
return(STATUS_SUCCESS);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
VideoPortDebugPrint(IN ULONG DebugPrintLevel,
|
|
||||||
IN PCHAR DebugMessage, ...)
|
|
||||||
{
|
|
||||||
char Buffer[256];
|
|
||||||
va_list ap;
|
|
||||||
|
|
||||||
/*
|
|
||||||
if (DebugPrintLevel > InternalDebugLevel)
|
|
||||||
return;
|
|
||||||
*/
|
|
||||||
va_start (ap, DebugMessage);
|
|
||||||
vsprintf (Buffer, DebugMessage, ap);
|
|
||||||
va_end (ap);
|
|
||||||
|
|
||||||
DbgPrint (Buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
VP_STATUS
|
|
||||||
STDCALL
|
|
||||||
VideoPortDisableInterrupt(IN PVOID HwDeviceExtension)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
VP_STATUS
|
|
||||||
STDCALL
|
|
||||||
VideoPortEnableInterrupt(IN PVOID HwDeviceExtension)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
STDCALL
|
|
||||||
VideoPortFreeDeviceBase(IN PVOID HwDeviceExtension,
|
|
||||||
IN PVOID MappedAddress)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
ULONG
|
|
||||||
STDCALL
|
|
||||||
VideoPortGetBusData(IN PVOID HwDeviceExtension,
|
|
||||||
IN BUS_DATA_TYPE BusDataType,
|
|
||||||
IN ULONG SlotNumber,
|
|
||||||
OUT PVOID Buffer,
|
|
||||||
IN ULONG Offset,
|
|
||||||
IN ULONG Length)
|
|
||||||
{
|
|
||||||
return HalGetBusDataByOffset(BusDataType,
|
|
||||||
0,
|
|
||||||
SlotNumber,
|
|
||||||
Buffer,
|
|
||||||
Offset,
|
|
||||||
Length);
|
|
||||||
}
|
|
||||||
|
|
||||||
UCHAR
|
|
||||||
STDCALL
|
|
||||||
VideoPortGetCurrentIrql(VOID)
|
|
||||||
{
|
|
||||||
return KeGetCurrentIrql();
|
|
||||||
}
|
|
||||||
|
|
||||||
PVOID
|
|
||||||
STDCALL
|
|
||||||
VideoPortGetDeviceBase(IN PVOID HwDeviceExtension,
|
|
||||||
IN PHYSICAL_ADDRESS IoAddress,
|
|
||||||
IN ULONG NumberOfUchars,
|
|
||||||
IN UCHAR InIoSpace)
|
|
||||||
{
|
|
||||||
if (InIoSpace)
|
|
||||||
{
|
|
||||||
return MmMapIoSpace(IoAddress, NumberOfUchars, FALSE);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
VP_STATUS
|
|
||||||
STDCALL
|
|
||||||
VideoPortGetDeviceData(IN PVOID HwDeviceExtension,
|
|
||||||
IN VIDEO_DEVICE_DATA_TYPE DeviceDataType,
|
|
||||||
IN PMINIPORT_QUERY_DEVICE_ROUTINE CallbackRoutine,
|
|
||||||
IN PVOID Context)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
VP_STATUS
|
|
||||||
STDCALL
|
|
||||||
VideoPortGetAccessRanges(IN PVOID HwDeviceExtension,
|
|
||||||
IN ULONG NumRequestedResources,
|
|
||||||
IN PIO_RESOURCE_DESCRIPTOR RequestedResources OPTIONAL,
|
|
||||||
IN ULONG NumAccessRanges,
|
|
||||||
IN PVIDEO_ACCESS_RANGE AccessRanges,
|
|
||||||
IN PVOID VendorId,
|
|
||||||
IN PVOID DeviceId,
|
|
||||||
IN PULONG Slot)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
VP_STATUS
|
|
||||||
STDCALL
|
|
||||||
VideoPortGetRegistryParameters(IN PVOID HwDeviceExtension,
|
|
||||||
IN PWSTR ParameterName,
|
|
||||||
IN UCHAR IsParameterFileName,
|
|
||||||
IN PMINIPORT_GET_REGISTRY_ROUTINE GetRegistryRoutine,
|
|
||||||
IN PVOID Context)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
ULONG STDCALL
|
|
||||||
VideoPortInitialize(IN PVOID Context1,
|
|
||||||
IN PVOID Context2,
|
|
||||||
IN PVIDEO_HW_INITIALIZATION_DATA HwInitializationData,
|
|
||||||
IN PVOID HwContext)
|
|
||||||
{
|
|
||||||
UCHAR Again;
|
|
||||||
WCHAR DeviceBuffer[20];
|
|
||||||
WCHAR SymlinkBuffer[20];
|
|
||||||
NTSTATUS Status;
|
|
||||||
PDRIVER_OBJECT MPDriverObject = (PDRIVER_OBJECT) Context1;
|
|
||||||
PDEVICE_OBJECT MPDeviceObject;
|
|
||||||
VIDEO_PORT_CONFIG_INFO ConfigInfo;
|
|
||||||
PVIDEOPORT_EXTENSION_DATA ExtensionData;
|
|
||||||
ULONG DeviceNumber = 0;
|
|
||||||
UNICODE_STRING DeviceName;
|
|
||||||
UNICODE_STRING SymlinkName;
|
|
||||||
CLIENT_ID Cid;
|
|
||||||
|
|
||||||
/* Build Dispatch table from passed data */
|
|
||||||
MPDriverObject->DriverStartIo = (PDRIVER_STARTIO) HwInitializationData->HwStartIO;
|
|
||||||
|
|
||||||
/* Create a unicode device name */
|
|
||||||
Again = FALSE;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
swprintf(DeviceBuffer, L"\\Device\\Video%lu", DeviceNumber);
|
|
||||||
RtlInitUnicodeString(&DeviceName, DeviceBuffer);
|
|
||||||
|
|
||||||
/* Create the device */
|
|
||||||
Status = IoCreateDevice(MPDriverObject,
|
|
||||||
HwInitializationData->HwDeviceExtensionSize +
|
|
||||||
sizeof(VIDEOPORT_EXTENSION_DATA),
|
|
||||||
&DeviceName,
|
|
||||||
FILE_DEVICE_VIDEO,
|
|
||||||
0,
|
|
||||||
TRUE,
|
|
||||||
&MPDeviceObject);
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
DbgPrint("IoCreateDevice call failed\n",0);
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
||||||
MPDriverObject->DeviceObject = MPDeviceObject;
|
|
||||||
|
|
||||||
/* initialize the miniport drivers dispatch table */
|
|
||||||
MPDriverObject->MajorFunction[IRP_MJ_CREATE] = VidDispatchOpenClose;
|
|
||||||
MPDriverObject->MajorFunction[IRP_MJ_CLOSE] = VidDispatchOpenClose;
|
|
||||||
MPDriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = VidDispatchDeviceControl;
|
|
||||||
|
|
||||||
/* create symbolic link "\??\DISPLAYx" */
|
|
||||||
swprintf(SymlinkBuffer, L"\\??\\DISPLAY%lu", DeviceNumber+1);
|
|
||||||
RtlInitUnicodeString (&SymlinkName,
|
|
||||||
SymlinkBuffer);
|
|
||||||
IoCreateSymbolicLink (&SymlinkName,
|
|
||||||
&DeviceName);
|
|
||||||
|
|
||||||
ExtensionData =
|
|
||||||
(PVIDEOPORT_EXTENSION_DATA) MPDeviceObject->DeviceExtension;
|
|
||||||
ExtensionData->DeviceObject = MPDeviceObject;
|
|
||||||
|
|
||||||
/* Set the buffering strategy here... */
|
|
||||||
/* If you change this, remember to change VidDispatchDeviceControl too */
|
|
||||||
MPDeviceObject->Flags |= DO_BUFFERED_IO;
|
|
||||||
|
|
||||||
/* Call HwFindAdapter entry point */
|
|
||||||
/* FIXME: Need to figure out what string to pass as param 3 */
|
|
||||||
Status = HwInitializationData->HwFindAdapter(VPExtensionToMPExtension(ExtensionData),
|
|
||||||
Context2,
|
|
||||||
L"",
|
|
||||||
&ConfigInfo,
|
|
||||||
&Again);
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
DbgPrint("HwFindAdapter call failed\n");
|
|
||||||
IoDeleteDevice(MPDeviceObject);
|
|
||||||
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* FIXME: Allocate hardware resources for device */
|
|
||||||
|
|
||||||
/* Allocate interrupt for device */
|
|
||||||
if (HwInitializationData->HwInterrupt != NULL &&
|
|
||||||
!(ConfigInfo.BusInterruptLevel == 0 &&
|
|
||||||
ConfigInfo.BusInterruptVector == 0))
|
|
||||||
{
|
|
||||||
#if 0
|
|
||||||
ExtensionData->IRQL = ConfigInfo.BusInterruptLevel;
|
|
||||||
ExtensionData->InterruptLevel =
|
|
||||||
HalGetInterruptVector(ConfigInfo.AdapterInterfaceType,
|
|
||||||
ConfigInfo.SystemIoBusNumber,
|
|
||||||
ConfigInfo.BusInterruptLevel,
|
|
||||||
ConfigInfo.BusInterruptVector,
|
|
||||||
&ExtensionData->IRQL,
|
|
||||||
&ExtensionData->Affinity);
|
|
||||||
KeInitializeSpinLock(&ExtensionData->InterruptSpinLock);
|
|
||||||
Status = IoConnectInterrupt(&ExtensionData->InterruptObject,
|
|
||||||
(PKSERVICE_ROUTINE)
|
|
||||||
HwInitializationData->HwInterrupt,
|
|
||||||
VPExtensionToMPExtension(ExtensionData),
|
|
||||||
&ExtensionData->InterruptSpinLock,
|
|
||||||
ExtensionData->InterruptLevel,
|
|
||||||
ExtensionData->IRQL,
|
|
||||||
ExtensionData->IRQL,
|
|
||||||
ConfigInfo.InterruptMode,
|
|
||||||
FALSE,
|
|
||||||
ExtensionData->Affinity,
|
|
||||||
FALSE);
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
DbgPrint("IoConnectInterrupt failed\n");
|
|
||||||
IoDeleteDevice(MPDeviceObject);
|
|
||||||
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
DeviceNumber++;
|
|
||||||
}
|
|
||||||
while (Again);
|
|
||||||
|
|
||||||
/* FIXME: initialize timer routine for MP Driver */
|
|
||||||
if (HwInitializationData->HwTimer != NULL)
|
|
||||||
{
|
|
||||||
Status = IoInitializeTimer(MPDeviceObject,
|
|
||||||
(PIO_TIMER_ROUTINE)
|
|
||||||
HwInitializationData->HwTimer,
|
|
||||||
VPExtensionToMPExtension(ExtensionData));
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
DbgPrint("IoInitializeTimer failed\n");
|
|
||||||
|
|
||||||
if (HwInitializationData->HwInterrupt != NULL)
|
|
||||||
{
|
|
||||||
IoDisconnectInterrupt(ExtensionData->InterruptObject);
|
|
||||||
}
|
|
||||||
IoDeleteDevice(MPDeviceObject);
|
|
||||||
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
VP_STATUS STDCALL
|
|
||||||
VideoPortInt10(IN PVOID HwDeviceExtension,
|
|
||||||
IN PVIDEO_X86_BIOS_ARGUMENTS BiosArguments)
|
|
||||||
{
|
|
||||||
KV86M_REGISTERS Regs;
|
|
||||||
NTSTATUS Status;
|
|
||||||
|
|
||||||
KeAttachProcess(Csrss);
|
|
||||||
|
|
||||||
memset(&Regs, 0, sizeof(Regs));
|
|
||||||
Regs.Eax = BiosArguments->Eax;
|
|
||||||
Regs.Ebx = BiosArguments->Ebx;
|
|
||||||
Regs.Ecx = BiosArguments->Ecx;
|
|
||||||
Regs.Edx = BiosArguments->Edx;
|
|
||||||
Regs.Esi = BiosArguments->Esi;
|
|
||||||
Regs.Edi = BiosArguments->Edi;
|
|
||||||
Regs.Ebp = BiosArguments->Ebp;
|
|
||||||
Status = Ke386CallBios(0x10, &Regs);
|
|
||||||
|
|
||||||
KeDetachProcess();
|
|
||||||
|
|
||||||
return(Status);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
STDCALL
|
|
||||||
VideoPortLogError(IN PVOID HwDeviceExtension,
|
|
||||||
IN PVIDEO_REQUEST_PACKET Vrp OPTIONAL,
|
|
||||||
IN VP_STATUS ErrorCode,
|
|
||||||
IN ULONG UniqueId)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
VP_STATUS
|
|
||||||
STDCALL
|
|
||||||
VideoPortMapBankedMemory(IN PVOID HwDeviceExtension,
|
|
||||||
IN PHYSICAL_ADDRESS PhysicalAddress,
|
|
||||||
IN PULONG Length,
|
|
||||||
IN PULONG InIoSpace,
|
|
||||||
OUT PVOID *VirtualAddress,
|
|
||||||
IN ULONG BankLength,
|
|
||||||
IN UCHAR ReadWriteBank,
|
|
||||||
IN PBANKED_SECTION_ROUTINE BankRoutine,
|
|
||||||
IN PVOID Context)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
VP_STATUS
|
|
||||||
STDCALL
|
|
||||||
VideoPortMapMemory(IN PVOID HwDeviceExtension,
|
|
||||||
IN PHYSICAL_ADDRESS PhysicalAddress,
|
|
||||||
IN PULONG Length,
|
|
||||||
IN PULONG InIoSpace,
|
|
||||||
OUT PVOID *VirtualAddress)
|
|
||||||
{
|
|
||||||
if (*InIoSpace)
|
|
||||||
{
|
|
||||||
*VirtualAddress = MmMapIoSpace(PhysicalAddress, *Length, FALSE);
|
|
||||||
|
|
||||||
return *VirtualAddress != NULL ? STATUS_SUCCESS :
|
|
||||||
STATUS_INSUFFICIENT_RESOURCES;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
return STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
UCHAR
|
|
||||||
STDCALL
|
|
||||||
VideoPortReadPortUchar(IN PUCHAR Port)
|
|
||||||
{
|
|
||||||
return READ_PORT_UCHAR(Port);
|
|
||||||
}
|
|
||||||
|
|
||||||
USHORT
|
|
||||||
STDCALL
|
|
||||||
VideoPortReadPortUshort(IN PUSHORT Port)
|
|
||||||
{
|
|
||||||
return READ_PORT_USHORT(Port);
|
|
||||||
}
|
|
||||||
|
|
||||||
ULONG
|
|
||||||
STDCALL
|
|
||||||
VideoPortReadPortUlong(IN PULONG Port)
|
|
||||||
{
|
|
||||||
return READ_PORT_ULONG(Port);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
STDCALL
|
|
||||||
VideoPortReadPortBufferUchar(IN PUCHAR Port,
|
|
||||||
OUT PUCHAR Buffer,
|
|
||||||
IN ULONG Count)
|
|
||||||
{
|
|
||||||
READ_PORT_BUFFER_UCHAR(Port, Buffer, Count);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
STDCALL
|
|
||||||
VideoPortReadPortBufferUshort(IN PUSHORT Port,
|
|
||||||
OUT PUSHORT Buffer,
|
|
||||||
IN ULONG Count)
|
|
||||||
{
|
|
||||||
READ_PORT_BUFFER_USHORT(Port, Buffer, Count);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
STDCALL
|
|
||||||
VideoPortReadPortBufferUlong(IN PULONG Port,
|
|
||||||
OUT PULONG Buffer,
|
|
||||||
IN ULONG Count)
|
|
||||||
{
|
|
||||||
READ_PORT_BUFFER_ULONG(Port, Buffer, Count);
|
|
||||||
}
|
|
||||||
|
|
||||||
UCHAR
|
|
||||||
STDCALL
|
|
||||||
VideoPortReadRegisterUchar(IN PUCHAR Register)
|
|
||||||
{
|
|
||||||
return READ_REGISTER_UCHAR(Register);
|
|
||||||
}
|
|
||||||
|
|
||||||
USHORT
|
|
||||||
STDCALL
|
|
||||||
VideoPortReadRegisterUshort(IN PUSHORT Register)
|
|
||||||
{
|
|
||||||
return READ_REGISTER_USHORT(Register);
|
|
||||||
}
|
|
||||||
|
|
||||||
ULONG
|
|
||||||
STDCALL
|
|
||||||
VideoPortReadRegisterUlong(IN PULONG Register)
|
|
||||||
{
|
|
||||||
return READ_REGISTER_ULONG(Register);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
STDCALL
|
|
||||||
VideoPortReadRegisterBufferUchar(IN PUCHAR Register,
|
|
||||||
OUT PUCHAR Buffer,
|
|
||||||
IN ULONG Count)
|
|
||||||
{
|
|
||||||
READ_REGISTER_BUFFER_UCHAR(Register, Buffer, Count);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
STDCALL
|
|
||||||
VideoPortReadRegisterBufferUshort(IN PUSHORT Register,
|
|
||||||
OUT PUSHORT Buffer,
|
|
||||||
IN ULONG Count)
|
|
||||||
{
|
|
||||||
READ_REGISTER_BUFFER_USHORT(Register, Buffer, Count);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
STDCALL
|
|
||||||
VideoPortReadRegisterBufferUlong(IN PULONG Register,
|
|
||||||
OUT PULONG Buffer,
|
|
||||||
IN ULONG Count)
|
|
||||||
{
|
|
||||||
READ_REGISTER_BUFFER_ULONG(Register, Buffer, Count);
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOLEAN
|
|
||||||
STDCALL
|
|
||||||
VideoPortScanRom(IN PVOID HwDeviceExtension,
|
|
||||||
IN PUCHAR RomBase,
|
|
||||||
IN ULONG RomLength,
|
|
||||||
IN PUCHAR String)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
ULONG
|
|
||||||
STDCALL
|
|
||||||
VideoPortSetBusData(IN PVOID HwDeviceExtension,
|
|
||||||
IN BUS_DATA_TYPE BusDataType,
|
|
||||||
IN ULONG SlotNumber,
|
|
||||||
IN PVOID Buffer,
|
|
||||||
IN ULONG Offset,
|
|
||||||
IN ULONG Length)
|
|
||||||
{
|
|
||||||
return HalSetBusDataByOffset(BusDataType,
|
|
||||||
0,
|
|
||||||
SlotNumber,
|
|
||||||
Buffer,
|
|
||||||
Offset,
|
|
||||||
Length);
|
|
||||||
}
|
|
||||||
|
|
||||||
VP_STATUS
|
|
||||||
STDCALL
|
|
||||||
VideoPortSetRegistryParameters(IN PVOID HwDeviceExtension,
|
|
||||||
IN PWSTR ValueName,
|
|
||||||
IN PVOID ValueData,
|
|
||||||
IN ULONG ValueLength)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
VP_STATUS
|
|
||||||
STDCALL
|
|
||||||
VideoPortSetTrappedEmulatorPorts(IN PVOID HwDeviceExtension,
|
|
||||||
IN ULONG NumAccessRanges,
|
|
||||||
IN PVIDEO_ACCESS_RANGE AccessRange)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
STDCALL
|
|
||||||
VideoPortStartTimer(IN PVOID HwDeviceExtension)
|
|
||||||
{
|
|
||||||
PVIDEOPORT_EXTENSION_DATA ExtensionData =
|
|
||||||
MPExtensionToVPExtension(HwDeviceExtension);
|
|
||||||
|
|
||||||
IoStartTimer(ExtensionData->DeviceObject);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
STDCALL
|
|
||||||
VideoPortStopTimer(IN PVOID HwDeviceExtension)
|
|
||||||
{
|
|
||||||
PVIDEOPORT_EXTENSION_DATA ExtensionData =
|
|
||||||
MPExtensionToVPExtension(HwDeviceExtension);
|
|
||||||
|
|
||||||
IoStopTimer(ExtensionData->DeviceObject);
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOLEAN
|
|
||||||
STDCALL
|
|
||||||
VideoPortSynchronizeExecution(IN PVOID HwDeviceExtension,
|
|
||||||
IN VIDEO_SYNCHRONIZE_PRIORITY Priority,
|
|
||||||
IN PMINIPORT_SYNCHRONIZE_ROUTINE SynchronizeRoutine,
|
|
||||||
OUT PVOID Context)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
VP_STATUS
|
|
||||||
STDCALL
|
|
||||||
VideoPortUnmapMemory(IN PVOID HwDeviceExtension,
|
|
||||||
IN PVOID VirtualAddress,
|
|
||||||
IN HANDLE ProcessHandle)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
VP_STATUS
|
|
||||||
STDCALL
|
|
||||||
VideoPortVerifyAccessRanges(IN PVOID HwDeviceExtension,
|
|
||||||
IN ULONG NumAccessRanges,
|
|
||||||
IN PVIDEO_ACCESS_RANGE AccessRanges)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
STDCALL
|
|
||||||
VideoPortWritePortUchar(IN PUCHAR Port,
|
|
||||||
IN UCHAR Value)
|
|
||||||
{
|
|
||||||
WRITE_PORT_UCHAR(Port, Value);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
STDCALL
|
|
||||||
VideoPortWritePortUshort(IN PUSHORT Port,
|
|
||||||
IN USHORT Value)
|
|
||||||
{
|
|
||||||
WRITE_PORT_USHORT(Port, Value);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
STDCALL
|
|
||||||
VideoPortWritePortUlong(IN PULONG Port,
|
|
||||||
IN ULONG Value)
|
|
||||||
{
|
|
||||||
WRITE_PORT_ULONG(Port, Value);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
STDCALL
|
|
||||||
VideoPortWritePortBufferUchar(IN PUCHAR Port,
|
|
||||||
IN PUCHAR Buffer,
|
|
||||||
IN ULONG Count)
|
|
||||||
{
|
|
||||||
WRITE_PORT_BUFFER_UCHAR(Port, Buffer, Count);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
STDCALL
|
|
||||||
VideoPortWritePortBufferUshort(IN PUSHORT Port,
|
|
||||||
IN PUSHORT Buffer,
|
|
||||||
IN ULONG Count)
|
|
||||||
{
|
|
||||||
WRITE_PORT_BUFFER_USHORT(Port, Buffer, Count);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
STDCALL
|
|
||||||
VideoPortWritePortBufferUlong(IN PULONG Port,
|
|
||||||
IN PULONG Buffer,
|
|
||||||
IN ULONG Count)
|
|
||||||
{
|
|
||||||
WRITE_PORT_BUFFER_ULONG(Port, Buffer, Count);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
STDCALL
|
|
||||||
VideoPortWriteRegisterUchar(IN PUCHAR Register,
|
|
||||||
IN UCHAR Value)
|
|
||||||
{
|
|
||||||
WRITE_REGISTER_UCHAR(Register, Value);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
STDCALL
|
|
||||||
VideoPortWriteRegisterUshort(IN PUSHORT Register,
|
|
||||||
IN USHORT Value)
|
|
||||||
{
|
|
||||||
WRITE_REGISTER_USHORT(Register, Value);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
STDCALL
|
|
||||||
VideoPortWriteRegisterUlong(IN PULONG Register,
|
|
||||||
IN ULONG Value)
|
|
||||||
{
|
|
||||||
WRITE_REGISTER_ULONG(Register, Value);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
STDCALL
|
|
||||||
VideoPortWriteRegisterBufferUchar(IN PUCHAR Register,
|
|
||||||
IN PUCHAR Buffer,
|
|
||||||
IN ULONG Count)
|
|
||||||
{
|
|
||||||
WRITE_REGISTER_BUFFER_UCHAR(Register, Buffer, Count);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID STDCALL
|
|
||||||
VideoPortWriteRegisterBufferUshort(IN PUSHORT Register,
|
|
||||||
IN PUSHORT Buffer,
|
|
||||||
IN ULONG Count)
|
|
||||||
{
|
|
||||||
WRITE_REGISTER_BUFFER_USHORT(Register, Buffer, Count);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID STDCALL
|
|
||||||
VideoPortWriteRegisterBufferUlong(IN PULONG Register,
|
|
||||||
IN PULONG Buffer,
|
|
||||||
IN ULONG Count)
|
|
||||||
{
|
|
||||||
WRITE_REGISTER_BUFFER_ULONG(Register, Buffer, Count);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID STDCALL
|
|
||||||
VideoPortZeroDeviceMemory(OUT PVOID Destination,
|
|
||||||
IN ULONG Length)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ------------------------------------------- Nondiscardable statics
|
|
||||||
|
|
||||||
// VidDispatchOpenClose
|
|
||||||
//
|
|
||||||
// DESCRIPTION:
|
|
||||||
// Answer requests for Open/Close calls: a null operation
|
|
||||||
//
|
|
||||||
// RUN LEVEL:
|
|
||||||
// PASSIVE_LEVEL
|
|
||||||
//
|
|
||||||
// ARGUMENTS:
|
|
||||||
// Standard dispatch arguments
|
|
||||||
//
|
|
||||||
// RETURNS:
|
|
||||||
// NTSTATUS
|
|
||||||
//
|
|
||||||
|
|
||||||
static NTSTATUS STDCALL
|
|
||||||
VidDispatchOpenClose(IN PDEVICE_OBJECT pDO,
|
|
||||||
IN PIRP Irp)
|
|
||||||
{
|
|
||||||
PIO_STACK_LOCATION IrpStack;
|
|
||||||
|
|
||||||
DPRINT("VidDispatchOpenClose() called\n");
|
|
||||||
|
|
||||||
IrpStack = IoGetCurrentIrpStackLocation(Irp);
|
|
||||||
|
|
||||||
if (IrpStack->MajorFunction == IRP_MJ_CREATE &&
|
|
||||||
CsrssInitialized == FALSE)
|
|
||||||
{
|
|
||||||
DPRINT("Referencing CSRSS\n");
|
|
||||||
Csrss = PsGetCurrentProcess();
|
|
||||||
CsrssInitialized = TRUE;
|
|
||||||
DPRINT("Csrss %p\n", Csrss);
|
|
||||||
}
|
|
||||||
|
|
||||||
Irp->IoStatus.Status = STATUS_SUCCESS;
|
|
||||||
Irp->IoStatus.Information = FILE_OPENED;
|
|
||||||
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
|
||||||
|
|
||||||
return STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
// VidStartIo
|
|
||||||
//
|
|
||||||
// DESCRIPTION:
|
|
||||||
// Get the next requested I/O packet started
|
|
||||||
//
|
|
||||||
// RUN LEVEL:
|
|
||||||
// DISPATCH_LEVEL
|
|
||||||
//
|
|
||||||
// ARGUMENTS:
|
|
||||||
// Dispatch routine standard arguments
|
|
||||||
//
|
|
||||||
// RETURNS:
|
|
||||||
// NTSTATUS
|
|
||||||
//
|
|
||||||
|
|
||||||
static VOID STDCALL
|
|
||||||
VidStartIo(IN PDEVICE_OBJECT DeviceObject,
|
|
||||||
IN PIRP Irp)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
// VidDispatchDeviceControl
|
|
||||||
//
|
|
||||||
// DESCRIPTION:
|
|
||||||
// Answer requests for device control calls
|
|
||||||
//
|
|
||||||
// RUN LEVEL:
|
|
||||||
// PASSIVE_LEVEL
|
|
||||||
//
|
|
||||||
// ARGUMENTS:
|
|
||||||
// Standard dispatch arguments
|
|
||||||
//
|
|
||||||
// RETURNS:
|
|
||||||
// NTSTATUS
|
|
||||||
//
|
|
||||||
|
|
||||||
static NTSTATUS STDCALL
|
|
||||||
VidDispatchDeviceControl(IN PDEVICE_OBJECT DeviceObject,
|
|
||||||
IN PIRP Irp)
|
|
||||||
{
|
|
||||||
PIO_STACK_LOCATION IrpStack;
|
|
||||||
PVIDEO_REQUEST_PACKET vrp;
|
|
||||||
|
|
||||||
IrpStack = IoGetCurrentIrpStackLocation(Irp);
|
|
||||||
|
|
||||||
// Translate the IRP to a VRP
|
|
||||||
vrp = ExAllocatePool(PagedPool, sizeof(VIDEO_REQUEST_PACKET));
|
|
||||||
vrp->StatusBlock = ExAllocatePool(PagedPool, sizeof(STATUS_BLOCK));
|
|
||||||
vrp->IoControlCode = IrpStack->Parameters.DeviceIoControl.IoControlCode;
|
|
||||||
|
|
||||||
// We're assuming METHOD_BUFFERED
|
|
||||||
vrp->InputBuffer = Irp->AssociatedIrp.SystemBuffer;
|
|
||||||
vrp->InputBufferLength = IrpStack->Parameters.DeviceIoControl.InputBufferLength;
|
|
||||||
vrp->OutputBuffer = Irp->UserBuffer;
|
|
||||||
vrp->OutputBufferLength = IrpStack->Parameters.DeviceIoControl.OutputBufferLength;
|
|
||||||
|
|
||||||
// Call the Miniport Driver with the VRP
|
|
||||||
DeviceObject->DriverObject->DriverStartIo(DeviceObject->DeviceExtension, (PIRP)vrp);
|
|
||||||
|
|
||||||
// Translate the VRP back into the IRP for OutputBuffer
|
|
||||||
Irp->UserBuffer = vrp->OutputBuffer;
|
|
||||||
IrpStack->Parameters.DeviceIoControl.OutputBufferLength = vrp->OutputBufferLength;
|
|
||||||
|
|
||||||
// Free the VRP
|
|
||||||
ExFreePool(vrp->StatusBlock);
|
|
||||||
ExFreePool(vrp);
|
|
||||||
|
|
||||||
return STATUS_SUCCESS;
|
|
||||||
}
|
|
|
@ -1,60 +0,0 @@
|
||||||
; $Id: vidport.def,v 1.4 2001/05/02 12:37:06 jfilby Exp $
|
|
||||||
;
|
|
||||||
; vidport.def - export definition file for ReactOS
|
|
||||||
;
|
|
||||||
EXPORTS
|
|
||||||
ReturnCsrssAddress
|
|
||||||
VideoPortCompareMemory@12
|
|
||||||
VideoPortDebugPrint
|
|
||||||
VideoPortDisableInterrupt@4
|
|
||||||
VideoPortEnableInterrupt@4
|
|
||||||
VideoPortFreeDeviceBase@8
|
|
||||||
VideoPortGetBusData@24
|
|
||||||
VideoPortGetCurrentIrql@0
|
|
||||||
VideoPortGetDeviceBase@20
|
|
||||||
VideoPortGetDeviceData@16
|
|
||||||
VideoPortGetAccessRanges@32
|
|
||||||
VideoPortGetRegistryParameters@20
|
|
||||||
VideoPortInitialize@16
|
|
||||||
VideoPortInt10@8
|
|
||||||
VideoPortLogError@16
|
|
||||||
VideoPortMapBankedMemory@40
|
|
||||||
VideoPortMapMemory@24
|
|
||||||
VideoPortMoveMemory@12
|
|
||||||
VideoPortReadPortUchar@4
|
|
||||||
VideoPortReadPortUshort@4
|
|
||||||
VideoPortReadPortUlong@4
|
|
||||||
VideoPortReadPortBufferUchar@12
|
|
||||||
VideoPortReadPortBufferUshort@12
|
|
||||||
VideoPortReadPortBufferUlong@12
|
|
||||||
VideoPortReadRegisterUchar@4
|
|
||||||
VideoPortReadRegisterUshort@4
|
|
||||||
VideoPortReadRegisterUlong@4
|
|
||||||
VideoPortReadRegisterBufferUchar@12
|
|
||||||
VideoPortReadRegisterBufferUshort@12
|
|
||||||
VideoPortReadRegisterBufferUlong@12
|
|
||||||
VideoPortScanRom@16
|
|
||||||
VideoPortSetBusData@24
|
|
||||||
VideoPortSetRegistryParameters@16
|
|
||||||
VideoPortSetTrappedEmulatorPorts@12
|
|
||||||
VideoPortStallExecution@4
|
|
||||||
VideoPortStartTimer@4
|
|
||||||
VideoPortStopTimer@4
|
|
||||||
VideoPortSynchronizeExecution@16
|
|
||||||
VideoPortUnmapMemory@12
|
|
||||||
VideoPortVerifyAccessRanges@12
|
|
||||||
VideoPortWritePortUchar@8
|
|
||||||
VideoPortWritePortUshort@8
|
|
||||||
VideoPortWritePortUlong@8
|
|
||||||
VideoPortWritePortBufferUchar@12
|
|
||||||
VideoPortWritePortBufferUshort@12
|
|
||||||
VideoPortWritePortBufferUlong@12
|
|
||||||
VideoPortWriteRegisterUchar@8
|
|
||||||
VideoPortWriteRegisterUshort@8
|
|
||||||
VideoPortWriteRegisterUlong@8
|
|
||||||
VideoPortWriteRegisterBufferUchar@12
|
|
||||||
VideoPortWriteRegisterBufferUshort@12
|
|
||||||
VideoPortWriteRegisterBufferUlong@12
|
|
||||||
VideoPortZeroMemory@8
|
|
||||||
VideoPortZeroDeviceMemory@8
|
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
; $Id: vidport.edf,v 1.4 2001/05/02 12:37:06 jfilby Exp $
|
|
||||||
;
|
|
||||||
; vidport.def - export definition file for ReactOS
|
|
||||||
;
|
|
||||||
EXPORTS
|
|
||||||
ReturnCsrssAddress
|
|
||||||
VideoPortCompareMemory=NTOSKRNL.RtlCompareMemory
|
|
||||||
VideoPortDebugPrint
|
|
||||||
VideoPortDisableInterrupt=VideoPortDisableInterrupt@4
|
|
||||||
VideoPortEnableInterrupt=VideoPortEnableInterrupt@4
|
|
||||||
VideoPortFreeDeviceBase=VideoPortFreeDeviceBase@8
|
|
||||||
VideoPortGetBusData=VideoPortGetBusData@24
|
|
||||||
VideoPortGetCurrentIrql=VideoPortGetCurrentIrql@0
|
|
||||||
VideoPortGetDeviceBase=VideoPortGetDeviceBase@20
|
|
||||||
VideoPortGetDeviceData=VideoPortGetDeviceData@16
|
|
||||||
VideoPortGetAccessRanges=VideoPortGetAccessRanges@32
|
|
||||||
VideoPortGetRegistryParameters=VideoPortGetRegistryParameters@20
|
|
||||||
VideoPortInitialize=VideoPortInitialize@16
|
|
||||||
VideoPortInt10=VideoPortInt10@8
|
|
||||||
VideoPortLogError=VideoPortLogError@16
|
|
||||||
VideoPortMapBankedMemory=VideoPortMapBankedMemory@40
|
|
||||||
VideoPortMapMemory=VideoPortMapMemory@24
|
|
||||||
VideoPortMoveMemory=NTOSKRNL.RtlMoveMemory
|
|
||||||
VideoPortReadPortUchar=VideoPortReadPortUchar@4
|
|
||||||
VideoPortReadPortUshort=VideoPortReadPortUshort@4
|
|
||||||
VideoPortReadPortUlong=VideoPortReadPortUlong@4
|
|
||||||
VideoPortReadPortBufferUchar=VideoPortReadPortBufferUchar@12
|
|
||||||
VideoPortReadPortBufferUshort=VideoPortReadPortBufferUshort@12
|
|
||||||
VideoPortReadPortBufferUlong=VideoPortReadPortBufferUlong@12
|
|
||||||
VideoPortReadRegisterUchar=VideoPortReadRegisterUchar@4
|
|
||||||
VideoPortReadRegisterUshort=VideoPortReadRegisterUshort@4
|
|
||||||
VideoPortReadRegisterUlong=VideoPortReadRegisterUlong@4
|
|
||||||
VideoPortReadRegisterBufferUchar=VideoPortReadRegisterBufferUchar@12
|
|
||||||
VideoPortReadRegisterBufferUshort=VideoPortReadRegisterBufferUshort@12
|
|
||||||
VideoPortReadRegisterBufferUlong=VideoPortReadRegisterBufferUlong@12
|
|
||||||
VideoPortScanRom=VideoPortScanRom@16
|
|
||||||
VideoPortSetBusData=VideoPortSetBusData@24
|
|
||||||
VideoPortSetRegistryParameters=VideoPortSetRegistryParameters@16
|
|
||||||
VideoPortSetTrappedEmulatorPorts=VideoPortSetTrappedEmulatorPorts@12
|
|
||||||
;VideoPortStallExecution=HAL.KeStallExecutionProcessor
|
|
||||||
VideoPortStallExecution=NTOSKRNL.KeStallExecutionProcessor
|
|
||||||
VideoPortStartTimer=VideoPortStartTimer@4
|
|
||||||
VideoPortStopTimer=VideoPortStopTimer@4
|
|
||||||
VideoPortSynchronizeExecution=VideoPortSynchronizeExecution@16
|
|
||||||
VideoPortUnmapMemory=VideoPortUnmapMemory@12
|
|
||||||
VideoPortVerifyAccessRanges=VideoPortVerifyAccessRanges@12
|
|
||||||
VideoPortWritePortUchar=VideoPortWritePortUchar@8
|
|
||||||
VideoPortWritePortUshort=VideoPortWritePortUshort@8
|
|
||||||
VideoPortWritePortUlong=VideoPortWritePortUlong@8
|
|
||||||
VideoPortWritePortBufferUchar=VideoPortWritePortBufferUchar@12
|
|
||||||
VideoPortWritePortBufferUshort=VideoPortWritePortBufferUshort@12
|
|
||||||
VideoPortWritePortBufferUlong=VideoPortWritePortBufferUlong@12
|
|
||||||
VideoPortWriteRegisterUchar=VideoPortWriteRegisterUchar@8
|
|
||||||
VideoPortWriteRegisterUshort=VideoPortWriteRegisterUshort@8
|
|
||||||
VideoPortWriteRegisterUlong=VideoPortWriteRegisterUlong@8
|
|
||||||
VideoPortWriteRegisterBufferUchar=VideoPortWriteRegisterBufferUchar@12
|
|
||||||
VideoPortWriteRegisterBufferUshort=VideoPortWriteRegisterBufferUshort@12
|
|
||||||
VideoPortWriteRegisterBufferUlong=VideoPortWriteRegisterBufferUlong@12
|
|
||||||
VideoPortZeroMemory=NTOSKRNL.RtlZeroMemory
|
|
||||||
VideoPortZeroDeviceMemory=VideoPortZeroDeviceMemory@8
|
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
|
|
||||||
typedef struct _VIDEOPORT_EXTENSTION_DATA
|
|
||||||
{
|
|
||||||
PDEVICE_OBJECT DeviceObject;
|
|
||||||
PKINTERRUPT InterruptObject;
|
|
||||||
KSPIN_LOCK InterruptSpinLock;
|
|
||||||
ULONG InterruptLevel;
|
|
||||||
KIRQL IRQL;
|
|
||||||
KAFFINITY Affinity;
|
|
||||||
} VIDEOPORT_EXTENSION_DATA, *PVIDEOPORT_EXTENSION_DATA;
|
|
||||||
|
|
||||||
#define MPExtensionToVPExtension(MPX) \
|
|
||||||
((PVIDEOPORT_EXTENSION_DATA) ((DWORD) (MPX) - sizeof(VIDEOPORT_EXTENSION_DATA)))
|
|
||||||
#define VPExtensionToMPExtension(VPX) \
|
|
||||||
((PVOID) ((DWORD) (VPX) + sizeof(VIDEOPORT_EXTENSION_DATA)))
|
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
|
|
||||||
#include <defines.h>
|
|
||||||
#include <reactos/resource.h>
|
|
||||||
|
|
||||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
|
||||||
FILEVERSION RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
|
|
||||||
PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
|
|
||||||
FILEFLAGSMASK 0x3fL
|
|
||||||
#ifdef _DEBUG
|
|
||||||
FILEFLAGS 0x1L
|
|
||||||
#else
|
|
||||||
FILEFLAGS 0x0L
|
|
||||||
#endif
|
|
||||||
FILEOS 0x40004L
|
|
||||||
FILETYPE 0x2L
|
|
||||||
FILESUBTYPE 0x0L
|
|
||||||
BEGIN
|
|
||||||
BLOCK "StringFileInfo"
|
|
||||||
BEGIN
|
|
||||||
BLOCK "040904b0"
|
|
||||||
BEGIN
|
|
||||||
VALUE "CompanyName", RES_STR_COMPANY_NAME
|
|
||||||
VALUE "FileDescription", "Videort Driver\0"
|
|
||||||
VALUE "FileVersion", "0.0.0\0"
|
|
||||||
VALUE "InternalName", "vidport\0"
|
|
||||||
VALUE "LegalCopyright", RES_STR_LEGAL_COPYRIGHT
|
|
||||||
VALUE "OriginalFilename", "vidport.sys\0"
|
|
||||||
VALUE "ProductName", RES_STR_PRODUCT_NAME
|
|
||||||
VALUE "ProductVersion", RES_STR_PRODUCT_VERSION
|
|
||||||
END
|
|
||||||
END
|
|
||||||
BLOCK "VarFileInfo"
|
|
||||||
BEGIN
|
|
||||||
VALUE "Translation", 0x409, 1200
|
|
||||||
END
|
|
||||||
END
|
|
||||||
|
|
Loading…
Reference in a new issue