view doc/BUILDING_mingw.txt @ 685:c13ccf5a629b

Fixed a bug in the dma routines which was causing memory corruption. In some cases when Windows gave an MDL that was longer than the buffer to be dma'd, the end of the buffer would be overwritten. The only time I am aware of this occuring is on one particular map in Call Of Duty 4.

Split out the dma routines from xenpci_pdo.c into xenpci_dma.c
author James Harper <>
date Wed Oct 14 14:46:39 2009 +1100 (2009-10-14)
parents f001a0f08c17
line source
1 This driver is buildable using MinGW32. This may be preferable due to licensing
2 reasons to using the Microsoft WDK/DDK.
4 These instructions are for building the driver on a Linux Ubuntu system, using
5 the mingw32msvc cross-compiler.
7 1. sudo apt-get install mingw32 mingw32-binutils mingw32-runtime
9 2. mingw-runtime headers need to be modified. Download the latest w32api-src.tar.gz
10 package from
12 3. Untar to a directory.
14 4. Use Mercurial and type:
15 "hg clone"
17 5. Apply the patch "w32api.diff" in the mingw directory to the untarred w32api
18 source: "cd w32api-<version>;patch -p1 < ~/hg/win-pvdrivers.hg/mingw/w32api.diff"
20 6. Type: "./configure i586-mingw32msvc;make"
22 7. Change to the win-pvdrivers.hg/xenpci dir.
24 8. Modify the W32API_PATH at the top of makefile.mingw to point to the lib/ddk
25 directory of the w32api package compiled above.
27 9. Type: "make -f makefile.mingw"
29 10. Building the shutdown monitor is not supported (maybe using Mono is an option
30 here?)
32 11. This is still an extremely alpha build method, so this will give you a
33 .sys file but you're on your own for the rest!