mirror of
https://github.com/reactos/reactos.git
synced 2025-06-25 10:39:42 +00:00
Moved display driver and got win32k loading it's entry point.
svn path=/trunk/; revision=1036
This commit is contained in:
parent
e2eb8c1697
commit
3da0b018e5
11 changed files with 39 additions and 324 deletions
|
@ -1,12 +1,11 @@
|
||||||
# $Id: makefile,v 1.5 1999/12/18 10:17:42 ea Exp $
|
# $Id: makefile,v 1.6 2000/03/08 21:23:13 jfilby Exp $
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
BASE_CFLAGS = -I../../../include
|
BASE_CFLAGS = -I../../../include
|
||||||
|
|
||||||
MP_OBJECTS = vgamp.o vgamp.coff ../../../ntoskrnl/ntoskrnl.a ../vidport/vidport.a
|
MP_OBJECTS = vgamp.o vgamp.coff ../../../ntoskrnl/ntoskrnl.a ../vidport/vidport.a
|
||||||
DDI_OBJECTS = vgaddi.o vgaddi.coff ../../../subsys/win32k/win32k.a
|
|
||||||
|
|
||||||
all: vgamp.sys vgaddi.sys
|
all: vgamp.sys
|
||||||
|
|
||||||
.phony: all
|
.phony: all
|
||||||
|
|
||||||
|
@ -48,35 +47,7 @@ vgamp.sys: $(MP_OBJECTS)
|
||||||
$(MP_OBJECTS)
|
$(MP_OBJECTS)
|
||||||
- $(RM) temp.exp
|
- $(RM) temp.exp
|
||||||
|
|
||||||
vgaddi.sys: $(DDI_OBJECTS)
|
floppy: $(FLOPPY_DIR)/drivers/vgamp.sys
|
||||||
$(CC) \
|
|
||||||
-specs=../../svc_specs \
|
|
||||||
-mdll \
|
|
||||||
-o junk.tmp \
|
|
||||||
-Wl,--defsym,_end=end \
|
|
||||||
-Wl,--defsym,_edata=__data_end__ \
|
|
||||||
-Wl,--defsym,_etext=etext \
|
|
||||||
-Wl,--base-file,base.tmp \
|
|
||||||
$(DDI_OBJECTS)
|
|
||||||
- $(RM) junk.tmp
|
|
||||||
$(DLLTOOL) \
|
|
||||||
--dllname vgaddi.sys \
|
|
||||||
--base-file base.tmp \
|
|
||||||
--output-exp temp.exp \
|
|
||||||
--kill-at
|
|
||||||
- $(RM) base.tmp
|
|
||||||
$(CC) \
|
|
||||||
--verbose \
|
|
||||||
-Wl,--image-base,0x10000 \
|
|
||||||
-Wl,-e,_DriverEntry@8 \
|
|
||||||
-Wl,temp.exp \
|
|
||||||
-specs=../../svc_specs \
|
|
||||||
-mdll \
|
|
||||||
-o vgaddi.sys \
|
|
||||||
$(DDI_OBJECTS)
|
|
||||||
- $(RM) temp.exp
|
|
||||||
|
|
||||||
floppy: $(FLOPPY_DIR)/drivers/vgamp.sys $(FLOPPY_DIR)/drivers/vgaddi.sys
|
|
||||||
|
|
||||||
$(FLOPPY_DIR)/drivers/vgamp.sys: vgamp.sys
|
$(FLOPPY_DIR)/drivers/vgamp.sys: vgamp.sys
|
||||||
ifeq ($(DOSCLI),yes)
|
ifeq ($(DOSCLI),yes)
|
||||||
|
@ -85,14 +56,7 @@ else
|
||||||
$(CP) vgamp.sys $(FLOPPY_DIR)/drivers/vgamp.sys
|
$(CP) vgamp.sys $(FLOPPY_DIR)/drivers/vgamp.sys
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(FLOPPY_DIR)/drivers/vgaddi.sys: vgaddi.sys
|
dist: ../../../$(DIST_DIR)/drivers/vgamp.sys
|
||||||
ifeq ($(DOSCLI),yes)
|
|
||||||
$(CP) vgaddi.sys $(FLOPPY_DIR)\drivers\vgaddi.sys
|
|
||||||
else
|
|
||||||
$(CP) vgaddi.sys $(FLOPPY_DIR)/drivers/vgaddi.sys
|
|
||||||
endif
|
|
||||||
|
|
||||||
dist: ../../../$(DIST_DIR)/drivers/vgamp.sys ../../../$(DIST_DIR)/drivers/vgaddi.sys
|
|
||||||
|
|
||||||
../../../$(DIST_DIR)/drivers/vgamp.sys: vgamp.sys
|
../../../$(DIST_DIR)/drivers/vgamp.sys: vgamp.sys
|
||||||
ifeq ($(DOSCLI),yes)
|
ifeq ($(DOSCLI),yes)
|
||||||
|
@ -101,12 +65,5 @@ else
|
||||||
$(CP) vgamp.sys ../../../$(DIST_DIR)/drivers/vgamp.sys
|
$(CP) vgamp.sys ../../../$(DIST_DIR)/drivers/vgamp.sys
|
||||||
endif
|
endif
|
||||||
|
|
||||||
../../../$(DIST_DIR)/drivers/vgaddi.sys: vgaddi.sys
|
|
||||||
ifeq ($(DOSCLI),yes)
|
|
||||||
$(CP) vgaddi.sys ..\..\..\$(DIST_DIR)\drivers\vgaddi.sys
|
|
||||||
else
|
|
||||||
$(CP) vgaddi.sys ../../../$(DIST_DIR)/drivers/vgaddi.sys
|
|
||||||
endif
|
|
||||||
|
|
||||||
include ../../../rules.mak
|
include ../../../rules.mak
|
||||||
|
|
||||||
|
|
|
@ -1,210 +0,0 @@
|
||||||
/*
|
|
||||||
* VGADDI.C - Generic VGA DDI graphics driver
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
|
||||||
#include <ddk/winddi.h>
|
|
||||||
|
|
||||||
#include "vgaddi.h"
|
|
||||||
|
|
||||||
#define DBG_PREFIX "VGADDI: "
|
|
||||||
|
|
||||||
VOID VGADDIAssertMode(IN DHPDEV DPev,
|
|
||||||
IN BOOL Enable);
|
|
||||||
VOID VGADDICompletePDEV(IN DHPDEV PDev,
|
|
||||||
IN HDEV Dev);
|
|
||||||
VOID VGADDIDisablePDEV(IN DHPDEV PDev);
|
|
||||||
VOID VGADDIDisableSurface(IN DHPDEV PDev);
|
|
||||||
DHPDEV VGADDIEnablePDEV(IN DEVMODEW *DM,
|
|
||||||
IN LPWSTR LogAddress,
|
|
||||||
IN ULONG PatternCount,
|
|
||||||
OUT HSURF *SurfPatterns,
|
|
||||||
IN ULONG CapsSize,
|
|
||||||
OUT ULONG *DevCaps,
|
|
||||||
IN ULONG DevInfoSize,
|
|
||||||
OUT DEVINFO *DI,
|
|
||||||
IN LPWSTR DevDataFile,
|
|
||||||
IN LPWSTR DeviceName,
|
|
||||||
IN HANDLE Driver);
|
|
||||||
HSURF VGADDIEnableSurface(IN DHPDEV PDev);
|
|
||||||
ULONG VGADDIGetModes(IN HANDLE Driver,
|
|
||||||
IN ULONG DataSize,
|
|
||||||
OUT PDEVMODEW DM);
|
|
||||||
|
|
||||||
DRVFN FuncList[] =
|
|
||||||
{
|
|
||||||
/* Required Display driver fuctions */
|
|
||||||
{INDEX_DrvAssertMode, (PFN) VGADDIAssertMode},
|
|
||||||
{INDEX_DrvCompletePDEV, (PFN) VGADDICompletePDEV},
|
|
||||||
{INDEX_DrvDisablePDEV, (PFN) VGADDIDisablePDEV},
|
|
||||||
{INDEX_DrvDisableSurface, (PFN) VGADDIDisableSurface},
|
|
||||||
{INDEX_DrvEnablePDEV, (PFN) VGADDIEnablePDEV},
|
|
||||||
{INDEX_DrvEnableSurface, (PFN) VGADDIEnableSurface},
|
|
||||||
{INDEX_DrvGetModes, (PFN) VGADDIGetModes},
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
/* Optional Display driver functions */
|
|
||||||
{INDEX_, (PFN) },
|
|
||||||
{INDEX_DrvBitBlt, (PFN) VGADDIBitBlt},
|
|
||||||
{INDEX_DrvCopyBits, (PFN) VGADDICopyBits},
|
|
||||||
{INDEX_DescribePixelFormat, (PFN) VGADDIDescribePixelFormat},
|
|
||||||
{INDEX_DrvDitherColor, (PFN) VGADDIDitherColor},
|
|
||||||
{INDEX_DrvFillPath, (PFN) VGADDIFillPath},
|
|
||||||
{INDEX_DrvGetTrueTypeFile, (PFN) VGADDIGetTrueTypeFile},
|
|
||||||
{INDEX_DrvLoadFontFile, (PFN) VGADDILoadFontFile},
|
|
||||||
{INDEX_DrvMovePointer, (PFN) VGADDIMovePointer},
|
|
||||||
{INDEX_DrvPaint, (PFN) VGADDIPaint}
|
|
||||||
{INDEX_DrvQueryFont, (PFN) VGADDIQueryFont},
|
|
||||||
{INDEX_DrvQueryFontCaps, (PFN) VGADDIQueryFontCaps},
|
|
||||||
{INDEX_DrvQueryFontData, (PFN) VGADDIQueryFontData},
|
|
||||||
{INDEX_DrvQueryFontFile, (PFN) VGADDIQueryFontFile},
|
|
||||||
{INDEX_DrvQueryFontTree, (PFN) VGADDIQueryFontTree},
|
|
||||||
{INDEX_DrvQueryTrueTypeOutline, (PFN) VGADDIQueryTrueTypeOutline},
|
|
||||||
{INDEX_DrvQueryTrueTypeTable, (PFN) VGADDIQueryTrueTypeTable},
|
|
||||||
{INDEX_DrvRealizeBrush, (PFN) VGADDIRealizeBrush},
|
|
||||||
{INDEX_DrvResetPDEV, (PFN) VGADDIResetPDEV},
|
|
||||||
{INDEX_DrvSetPalette, (PFN) VGADDISetPalette},
|
|
||||||
{INDEX_DrvSetPixelFormat, (PFN) VGADDISetPixelFormat},
|
|
||||||
{INDEX_DrvSetPointerShape, (PFN) VGADDISetPointerShape},
|
|
||||||
{INDEX_DrvStretchBlt, (PFN) VGADDIStretchBlt},
|
|
||||||
{INDEX_DrvStrokePath, (PFN) VGADDIStrokePath},
|
|
||||||
{INDEX_DrvSwapBuffers, (PFN) VGADDISwapBuffers},
|
|
||||||
{INDEX_DrvTextOut, (PFN) VGADDITextOut},
|
|
||||||
{INDEX_DrvUnloadFontFile, (PFN) VGADDIUnloadFontFile},
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
// ----------------------------------------------------- Public Interface
|
|
||||||
|
|
||||||
// DrvEnableDriver
|
|
||||||
// DESCRIPTION:
|
|
||||||
// This function is called by the KMGDI immediately after load of
|
|
||||||
// the DDI module. This is the entry point for the DDI.
|
|
||||||
// ARGUMENTS:
|
|
||||||
// IN ULONG EngineVersion Version of KMGDI
|
|
||||||
// IN ULONG SizeOfDED Size of the DRVENABLEDATA struct
|
|
||||||
// OUT PDRVENABLEDATA DriveEnableData Struct to fill in for KMGDI
|
|
||||||
// RETURNS:
|
|
||||||
// BOOL TRUE if driver is enabled, FALSE and log an error otherwise
|
|
||||||
|
|
||||||
BOOL
|
|
||||||
DrvEnableDriver(IN ULONG EngineVersion,
|
|
||||||
IN ULONG SizeOfDED,
|
|
||||||
OUT PDRVENABLEDATA DriveEnableData)
|
|
||||||
{
|
|
||||||
DriveEnableData->pdrvfn = FuncList;
|
|
||||||
DriveEnableData->c = sizeof FuncList / sizeof &FuncList[0];
|
|
||||||
DriveEnableData->iDriverVersion = DDI_DRIVER_VERSION;
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// DrvDisableDriver
|
|
||||||
// DESCRIPTION:
|
|
||||||
// This function is called by the KMGDI at exit. It should cleanup.
|
|
||||||
// ARGUMENTS:
|
|
||||||
// NONE
|
|
||||||
// RETURNS:
|
|
||||||
// NONE
|
|
||||||
|
|
||||||
VOID DrvDisableDriver(VOID)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------------------------------------------- Driver Implementation
|
|
||||||
|
|
||||||
|
|
||||||
// DrvEnablePDEV
|
|
||||||
// DESCRIPTION:
|
|
||||||
// This function is called after DrvEnableDriver to get information
|
|
||||||
// about the mode that is to be used. This function just returns
|
|
||||||
// information, and should not yet initialize the mode.
|
|
||||||
// ARGUMENTS:
|
|
||||||
// IN DEVMODEW * DM Describes the mode requested
|
|
||||||
// IN LPWSTR LogAddress
|
|
||||||
// IN ULONG PatternCount number of patterns expected
|
|
||||||
// OUT HSURF * SurfPatterns array to contain pattern handles
|
|
||||||
// IN ULONG CapsSize the size of the DevCaps object passed in
|
|
||||||
// OUT ULONG * DevCaps Device Capabilities object
|
|
||||||
// IN ULONG DevInfoSize the size of the DevInfo object passed in
|
|
||||||
// OUT DEVINFO * DI Device Info object
|
|
||||||
// IN LPWSTR DevDataFile ignore
|
|
||||||
// IN LPWSTR DeviceName Device name
|
|
||||||
// IN HANDLE Driver handle to KM driver
|
|
||||||
// RETURNS:
|
|
||||||
// DHPDEV a handle to a DPev object
|
|
||||||
|
|
||||||
DHPDEV VGADDIEnablePDEV(IN DEVMODEW *DM,
|
|
||||||
IN LPWSTR LogAddress,
|
|
||||||
IN ULONG PatternCount,
|
|
||||||
OUT HSURF *SurfPatterns,
|
|
||||||
IN ULONG CapsSize,
|
|
||||||
OUT ULONG *DevCaps,
|
|
||||||
IN ULONG DevInfoSize,
|
|
||||||
OUT DEVINFO *DI,
|
|
||||||
IN LPWSTR DevDataFile,
|
|
||||||
IN LPWSTR DeviceName,
|
|
||||||
IN HANDLE Driver)
|
|
||||||
{
|
|
||||||
PPDEV PDev;
|
|
||||||
|
|
||||||
PDev = EngAllocMem(FL_ZERO_MEMORY, sizeof(PDEV), ALLOC_TAG);
|
|
||||||
if (PDev == NULL)
|
|
||||||
{
|
|
||||||
EngDebugPrint(DBG_PREFIX, "EngAllocMem failed for PDEV\n", 0);
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
PDev->KMDriver = Driver;
|
|
||||||
|
|
||||||
/* FIXME: fill out DevCaps */
|
|
||||||
/* FIXME: full out DevInfo */
|
|
||||||
|
|
||||||
return PDev;
|
|
||||||
}
|
|
||||||
|
|
||||||
// DrvEnablePDEV
|
|
||||||
// DESCRIPTION
|
|
||||||
// Called after initialization of PDEV is complete. Supplies
|
|
||||||
// a reference to the GDI handle for the PDEV.
|
|
||||||
|
|
||||||
VOID VGADDICompletePDEV(IN DHPDEV PDev,
|
|
||||||
IN HDEV Dev)
|
|
||||||
{
|
|
||||||
((PPDEV) PDev)->GDIDevHandle = Dev;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
VOID VGADDIAssertMode(IN DHPDEV DPev,
|
|
||||||
IN BOOL Enable)
|
|
||||||
{
|
|
||||||
EngDebugPrint(DBG_PREFIX, "UNIMPLEMENTED\n", 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID VGADDIDisablePDEV(IN DHPDEV PDev)
|
|
||||||
{
|
|
||||||
EngDebugPrint(DBG_PREFIX, "UNIMPLEMENTED\n", 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID VGADDIDisableSurface(IN DHPDEV PDev)
|
|
||||||
{
|
|
||||||
EngDebugPrint(DBG_PREFIX, "UNIMPLEMENTED\n", 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
HSURF VGADDIEnableSurface(IN DHPDEV PDev)
|
|
||||||
{
|
|
||||||
EngDebugPrint(DBG_PREFIX, "UNIMPLEMENTED\n", 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
ULONG VGADDIGetModes(IN HANDLE Driver,
|
|
||||||
IN ULONG DataSize,
|
|
||||||
OUT PDEVMODEW DM)
|
|
||||||
{
|
|
||||||
EngDebugPrint(DBG_PREFIX, "UNIMPLEMENTED\n", 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
|
|
||||||
//
|
|
||||||
// PDEV
|
|
||||||
// DESCRIPTION
|
|
||||||
// This structure will contain all state information
|
|
||||||
// required to maintain the video device
|
|
||||||
// ACCESS
|
|
||||||
// Allocated from non-paged pool by the GDI
|
|
||||||
|
|
||||||
typedef struct _PDEV
|
|
||||||
{
|
|
||||||
HANDLE KMDriver;
|
|
||||||
HDEV GDIDevHandle;
|
|
||||||
} PDEV, *PPDEV;
|
|
||||||
|
|
||||||
|
|
|
@ -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", "VGADDI Device Driver\0"
|
|
||||||
VALUE "FileVersion", "0.0.0\0"
|
|
||||||
VALUE "InternalName", "vgaddi\0"
|
|
||||||
VALUE "LegalCopyright", RES_STR_LEGAL_COPYRIGHT
|
|
||||||
VALUE "OriginalFilename", "vgaddi.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
|
|
||||||
|
|
|
@ -924,6 +924,8 @@ VOID APIENTRY EngDebugPrint(PCHAR StandardPrefix,
|
||||||
PCHAR DebugMessage,
|
PCHAR DebugMessage,
|
||||||
va_list ArgList);
|
va_list ArgList);
|
||||||
|
|
||||||
|
HANDLE EngLoadImage(LPWSTR DriverName);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
EngDeleteClip
|
EngDeleteClip
|
||||||
EngDeleteDriverObj
|
EngDeleteDriverObj
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
; $Id: ntoskrnl.def,v 1.54 2000/03/08 01:55:34 ekohl Exp $
|
; $Id: ntoskrnl.def,v 1.55 2000/03/08 21:23:13 jfilby Exp $
|
||||||
;
|
;
|
||||||
; reactos/ntoskrnl/ntoskrnl.def
|
; reactos/ntoskrnl/ntoskrnl.def
|
||||||
;
|
;
|
||||||
|
@ -462,6 +462,7 @@ RtlxAnsiStringToUnicodeSize@4
|
||||||
RtlxOemStringToUnicodeSize@4
|
RtlxOemStringToUnicodeSize@4
|
||||||
RtlxUnicodeStringToAnsiSize@4
|
RtlxUnicodeStringToAnsiSize@4
|
||||||
RtlxUnicodeStringToOemSize@4
|
RtlxUnicodeStringToOemSize@4
|
||||||
|
LdrLoadModule
|
||||||
WRITE_REGISTER_UCHAR
|
WRITE_REGISTER_UCHAR
|
||||||
WRITE_REGISTER_ULONG
|
WRITE_REGISTER_ULONG
|
||||||
WRITE_REGISTER_USHORT
|
WRITE_REGISTER_USHORT
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
; $Id: ntoskrnl.edf,v 1.41 2000/03/08 01:55:34 ekohl Exp $
|
; $Id: ntoskrnl.edf,v 1.42 2000/03/08 21:23:13 jfilby Exp $
|
||||||
;
|
;
|
||||||
; reactos/ntoskrnl/ntoskrnl.def
|
; reactos/ntoskrnl/ntoskrnl.def
|
||||||
;
|
;
|
||||||
|
@ -388,6 +388,7 @@ RtlxAnsiStringToUnicodeSize=RtlxAnsiStringToUnicodeSize@4
|
||||||
RtlxOemStringToUnicodeSize=RtlxOemStringToUnicodeSize@4
|
RtlxOemStringToUnicodeSize=RtlxOemStringToUnicodeSize@4
|
||||||
RtlxUnicodeStringToAnsiSize=RtlxUnicodeStringToAnsiSize@4
|
RtlxUnicodeStringToAnsiSize=RtlxUnicodeStringToAnsiSize@4
|
||||||
RtlxUnicodeStringToOemSize=RtlxUnicodeStringToOemSize@4
|
RtlxUnicodeStringToOemSize=RtlxUnicodeStringToOemSize@4
|
||||||
|
LdrLoadModule=LdrLoadModule
|
||||||
WRITE_REGISTER_UCHAR
|
WRITE_REGISTER_UCHAR
|
||||||
WRITE_REGISTER_ULONG
|
WRITE_REGISTER_ULONG
|
||||||
WRITE_REGISTER_USHORT
|
WRITE_REGISTER_USHORT
|
||||||
|
|
6
reactos/subsys/win32k/ldr/loader.c
Normal file
6
reactos/subsys/win32k/ldr/loader.c
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#include <ddk/winddi.h>
|
||||||
|
|
||||||
|
HANDLE EngLoadImage(LPWSTR DriverName)
|
||||||
|
{
|
||||||
|
return LdrLoadModule(DriverName);
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
# $Id: makefile,v 1.15 1999/11/12 00:16:51 rex Exp $
|
# $Id: makefile,v 1.16 2000/03/08 21:23:13 jfilby Exp $
|
||||||
#
|
#
|
||||||
# WIN32K.SYS build spec
|
# WIN32K.SYS build spec
|
||||||
#
|
#
|
||||||
|
@ -10,6 +10,7 @@ BASE_CFLAGS = -I../../include
|
||||||
ENG_OBJECTS= eng/debug.o eng/mem.o
|
ENG_OBJECTS= eng/debug.o eng/mem.o
|
||||||
MAIN_OBJECTS = main/dllmain.o
|
MAIN_OBJECTS = main/dllmain.o
|
||||||
MISC_OBJECTS = misc/driver.o
|
MISC_OBJECTS = misc/driver.o
|
||||||
|
LDR_OBJECTS = ldr/loader.o
|
||||||
OBJECTS_OBJECTS = objects/bitmaps.o objects/brush.o objects/cliprgn.o \
|
OBJECTS_OBJECTS = objects/bitmaps.o objects/brush.o objects/cliprgn.o \
|
||||||
objects/color.o objects/coord.o objects/dc.o \
|
objects/color.o objects/coord.o objects/dc.o \
|
||||||
objects/fillshap.o objects/gdiobj.o objects/icm.o \
|
objects/fillshap.o objects/gdiobj.o objects/icm.o \
|
||||||
|
@ -19,7 +20,7 @@ OBJECTS_OBJECTS = objects/bitmaps.o objects/brush.o objects/cliprgn.o \
|
||||||
RESOURCE_OBJECT = $(TARGET).coff
|
RESOURCE_OBJECT = $(TARGET).coff
|
||||||
STUBS_OBJECTS = stubs/stubs.o
|
STUBS_OBJECTS = stubs/stubs.o
|
||||||
|
|
||||||
OBJECTS = $(ENG_OBJECTS) $(MAIN_OBJECTS) $(MISC_OBJECTS) $(OBJECTS_OBJECTS) \
|
OBJECTS = $(ENG_OBJECTS) $(MAIN_OBJECTS) $(MISC_OBJECTS) $(LDR_OBJECTS) $(OBJECTS_OBJECTS) \
|
||||||
$(RESOURCE_OBJECT) $(STUBS_OBJECTS)
|
$(RESOURCE_OBJECT) $(STUBS_OBJECTS)
|
||||||
|
|
||||||
all: $(TARGET).sys
|
all: $(TARGET).sys
|
||||||
|
@ -27,11 +28,11 @@ all: $(TARGET).sys
|
||||||
$(TARGET).coff: $(TARGET).rc ../../include/reactos/resource.h
|
$(TARGET).coff: $(TARGET).rc ../../include/reactos/resource.h
|
||||||
|
|
||||||
ifeq ($(DOSCLI),yes)
|
ifeq ($(DOSCLI),yes)
|
||||||
CLEAN_FILES = eng\*.o main\*.o misc\*.o stubs\*.o objects\*.o \
|
CLEAN_FILES = eng\*.o main\*.o misc\*.o ldr\*.o stubs\*.o objects\*.o \
|
||||||
$(TARGET).coff $(TARGET).o $(TARGET).a \
|
$(TARGET).coff $(TARGET).o $(TARGET).a \
|
||||||
junk.tmp base.tmp temp.exp $(TARGET).sys $(TARGET).sym
|
junk.tmp base.tmp temp.exp $(TARGET).sys $(TARGET).sym
|
||||||
else
|
else
|
||||||
CLEAN_FILES = eng/*.o main/*.o misc/*.o stubs/*.o objects/*.o \
|
CLEAN_FILES = eng/*.o main/*.o ldr\*.o misc/*.o stubs/*.o objects/*.o \
|
||||||
$(TARGET).coff $(TARGET).o $(TARGET).a \
|
$(TARGET).coff $(TARGET).o $(TARGET).a \
|
||||||
junk.tmp base.tmp temp.exp $(TARGET).sys $(TARGET).sym
|
junk.tmp base.tmp temp.exp $(TARGET).sys $(TARGET).sym
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: driver.c,v 1.7 2000/03/01 03:23:42 ekohl Exp $
|
/* $Id: driver.c,v 1.8 2000/03/08 21:23:14 jfilby Exp $
|
||||||
*
|
*
|
||||||
* GDI Driver support routines
|
* GDI Driver support routines
|
||||||
* (mostly swiped from Wine)
|
* (mostly swiped from Wine)
|
||||||
|
@ -6,10 +6,14 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#undef WIN32_LEAN_AND_MEAN
|
#undef WIN32_LEAN_AND_MEAN
|
||||||
|
#define WIN32_NO_PEHDR
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ddk/ntddk.h>
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <win32k/driver.h>
|
#include <win32k/driver.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
|
#include <internal/module.h>
|
||||||
|
#include <ddk/winddi.h>
|
||||||
|
|
||||||
//#define NDEBUG
|
//#define NDEBUG
|
||||||
#include <internal/debug.h>
|
#include <internal/debug.h>
|
||||||
|
@ -58,8 +62,12 @@ BOOL DRIVER_RegisterDriver(LPCWSTR Name, PGD_ENABLEDRIVER EnableDriver)
|
||||||
|
|
||||||
PGD_ENABLEDRIVER DRIVER_FindDDIDriver(LPCWSTR Name)
|
PGD_ENABLEDRIVER DRIVER_FindDDIDriver(LPCWSTR Name)
|
||||||
{
|
{
|
||||||
|
UNICODE_STRING DriverNameW;
|
||||||
|
NTSTATUS Status;
|
||||||
|
PMODULE_OBJECT ModuleObject;
|
||||||
GRAPHICS_DRIVER *Driver = DriverList;
|
GRAPHICS_DRIVER *Driver = DriverList;
|
||||||
|
|
||||||
|
/* First see if the driver hasn't already been loaded */
|
||||||
while (Driver && Name)
|
while (Driver && Name)
|
||||||
{
|
{
|
||||||
if (!_wcsicmp( Driver->Name, Name))
|
if (!_wcsicmp( Driver->Name, Name))
|
||||||
|
@ -69,7 +77,10 @@ PGD_ENABLEDRIVER DRIVER_FindDDIDriver(LPCWSTR Name)
|
||||||
Driver = Driver->Next;
|
Driver = Driver->Next;
|
||||||
}
|
}
|
||||||
|
|
||||||
return GenericDriver ? GenericDriver->EnableDriver : NULL;
|
/* If not, then load it */
|
||||||
|
RtlInitUnicodeString (&DriverNameW, Name);
|
||||||
|
ModuleObject = EngLoadImage(&DriverNameW);
|
||||||
|
return (PGD_ENABLEDRIVER)ModuleObject->EntryPoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL DRIVER_BuildDDIFunctions(PDRVENABLEDATA DED,
|
BOOL DRIVER_BuildDDIFunctions(PDRVENABLEDATA DED,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: dc.c,v 1.11 2000/03/01 03:23:57 ekohl Exp $
|
/* $Id: dc.c,v 1.12 2000/03/08 21:23:14 jfilby Exp $
|
||||||
*
|
*
|
||||||
* DC.C - Device context functions
|
* DC.C - Device context functions
|
||||||
*
|
*
|
||||||
|
@ -188,7 +188,8 @@ HDC STDCALL W32kCreateDC(LPCWSTR Driver,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get the DDI driver's entry point */
|
/* Get the DDI driver's entry point */
|
||||||
if ((GDEnableDriver = DRIVER_FindDDIDriver(Driver)) == NULL)
|
/* FIXME: Retrieve DDI driver name from registry */
|
||||||
|
if ((GDEnableDriver = DRIVER_FindDDIDriver(L"\\??\\C:\\reactos\\system32\\drivers\\vgaddi.dll")) == NULL)
|
||||||
{
|
{
|
||||||
DbgPrint("FindDDIDriver failed\n");
|
DbgPrint("FindDDIDriver failed\n");
|
||||||
goto Failure;
|
goto Failure;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue