Annotation of q_a/samples/ddk/mono/readme.txt, revision 1.1.1.1

1.1       root        1: Build & Run Instructions:
                      2: -------------------------
                      3: 
                      4: 
                      5: The MONO sample is composed of a simple monolithic export driver
                      6: and a Win32 test application. The Win32 app retrieves a handle to
                      7: the driver/device by calling CreateFile("\\.\MONO", ...), where MONO
                      8: is a Win32 alias (or "symbolic link") for \Device\Mono, and
                      9: subsequently sends it I/O requests (IOCTLs) to have it perform I/O
                     10: on it's behalf.
                     11: 
                     12: 
                     13: NOTE: MONO is intended to be a generic monolithic driver sample;
                     14:       it just happens that it was coded to support a monochrome
                     15:       video adapter.
                     16: 
                     17:       Microsoft does not recommend the use this sample as a
                     18:       template for video driver development. We encourage developers
                     19:       to code within the stated video model; doing so will insure
                     20:       compatibility & portability, lessen development time,
                     21:       and produce smaller and more supportable code.
                     22: 
                     23: 
                     24: As mentioned above, MONO is an export driver; it provides a
                     25: MonoDbgPrint() API which may be called by other kernel mode drivers
                     26: that include a prototype & link with MONO.LIB, e.g. by adding
                     27: "TARGETLIBS=$(BASEDIR)\lib\*\mono.lib" to the sources file.
                     28: (This can make single machine driver debugging a little more bearable.
                     29: Note that the load order of the driver can be varied by changing
                     30: the Start value in the registry, 0 being the earliest starting
                     31: value. See Chapter 16 of the Kernel-mode Driver Design Guide for
                     32: mode information on driver load ordering.)
                     33: 
                     34: There are currently three export drivers that ship with NT (i.e.
                     35: VIDEOPRT.SYS and SCSIPORT.SYS); these represent the port side of
                     36: the port/miniport driver model. The idea of this model is to split
                     37: the OS-specific functionality into a common port driver, while the
                     38: H/W specific functionality resides in the miniport driver. This
                     39: way, miniports remain portable across various platforms & systems,
                     40: and a single port driver can service several miniports on a particular
                     41: platform.
                     42: 
                     43: The Win32 portion contains a file, MONOTEST.C, which attempts to
                     44: obtain a handle to MONO & send it IOCTLs.  The executable is built
                     45: using the Windows NT SDK.  First update the environment and path
                     46: by running <mstools>\setenv.bat.  Then change to the directory
                     47: where you have the C source code and the makefile.  Type
                     48: "nmake /f monotest.mak" to compile the Win32 program, MONOTEST.EXE.
                     49: 
                     50: The kernel driver portion contains the driver source code, MONO.C
                     51: and a text file used to configure your registry so that the driver
                     52: can be loaded.  The driver is built using the Windows NT DDK.
                     53: 
                     54: To build the driver:
                     55: 
                     56: 
                     57:     1. Assuming you have run <sdk_root>\setenv.bat and
                     58:        <ddk_root>\setenv.bat, build the driver by typing:
                     59: 
                     60:                build -cef
                     61: 
                     62:        (If there are any errors have a look at the build.log, build.err,
                     63:         and build.wrn files to get an idea of what went wrong.)
                     64: 
                     65: 
                     66:     2. Copy the newly built driver, <ddk_root>\lib\*\MONO.SYS to the
                     67:        <nt_root>\system32\drivers\ directory, i.e.:
                     68: 
                     69:                copy \ntddk\lib\i386\free\mono.sys c:\winnt\system32\drivers\
                     70: 
                     71: 
                     72:     3. Update the registry by running regini.exe on the mapmem.ini
                     73:        file, i.e.:
                     74: 
                     75:                regini mono.ini
                     76: 
                     77:        This adds a MONO driver key under the HKEY_LOCAL_MACHINE\
                     78:        SYSTEM\CurrentControlSet\Services tree in the registry. You
                     79:        can verify this by starting REGEDIT.EXE and looking in the
                     80:        appropriate place.
                     81: 
                     82: 
                     83:     4. Reboot.
                     84: 
                     85: 
                     86:     5. Type:
                     87: 
                     88:                net start mono
                     89: 
                     90:        ...and then execute MONOTEST.EXE.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.