Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

v86emul.h

Go to the documentation of this file.
00001 /*++ BUILD Version: 0001 // Increment this if a change has global effects 00002 00003 Copyright (c) 1989 Microsoft Corporation 00004 00005 Module Name: 00006 00007 v86emul.h 00008 00009 Abstract: 00010 00011 This module contains the V86 instruction emulator interface definitions 00012 used by kernel device drivers. 00013 00014 Author: 00015 00016 Andre Vachon (andreva) 8-Jan-1992 00017 00018 Revision History: 00019 00020 00021 --*/ 00022 00023 #ifndef _V86EMUL_ 00024 #define _V86EMUL_ 00025 00026 00027 // begin_ntminiport 00028 00029 // 00030 // Structures used by the kernel drivers to describe which ports must be 00031 // hooked out directly from the V86 emulator to the driver. 00032 // 00033 00034 typedef enum _EMULATOR_PORT_ACCESS_TYPE { 00035 Uchar, 00036 Ushort, 00037 Ulong 00038 } EMULATOR_PORT_ACCESS_TYPE, *PEMULATOR_PORT_ACCESS_TYPE; 00039 00040 // 00041 // Access Modes 00042 // 00043 00044 #define EMULATOR_READ_ACCESS 0x01 00045 #define EMULATOR_WRITE_ACCESS 0x02 00046 00047 typedef struct _EMULATOR_ACCESS_ENTRY { 00048 ULONG BasePort; 00049 ULONG NumConsecutivePorts; 00050 EMULATOR_PORT_ACCESS_TYPE AccessType; 00051 UCHAR AccessMode; 00052 UCHAR StringSupport; 00053 PVOID Routine; 00054 } EMULATOR_ACCESS_ENTRY, *PEMULATOR_ACCESS_ENTRY; 00055 00056 // end_ntminiport 00057 00058 // 00059 // These are the various function prototypes of the routines that are 00060 // provided by the kernel driver to hook out access to io ports. 00061 // 00062 00063 typedef 00064 NTSTATUS 00065 (*PDRIVER_IO_PORT_UCHAR ) ( 00066 IN ULONG_PTR Context, 00067 IN ULONG Port, 00068 IN UCHAR AccessMode, 00069 IN OUT PUCHAR Data 00070 ); 00071 00072 typedef 00073 NTSTATUS 00074 (*PDRIVER_IO_PORT_UCHAR_STRING ) ( 00075 IN ULONG_PTR Context, 00076 IN ULONG Port, 00077 IN UCHAR AccessMode, 00078 IN OUT PUCHAR Data, 00079 IN ULONG DataLength 00080 ); 00081 00082 typedef 00083 NTSTATUS 00084 (*PDRIVER_IO_PORT_USHORT ) ( 00085 IN ULONG_PTR Context, 00086 IN ULONG Port, 00087 IN UCHAR AccessMode, 00088 IN OUT PUSHORT Data 00089 ); 00090 00091 typedef 00092 NTSTATUS 00093 (*PDRIVER_IO_PORT_USHORT_STRING ) ( 00094 IN ULONG_PTR Context, 00095 IN ULONG Port, 00096 IN UCHAR AccessMode, 00097 IN OUT PUSHORT Data, 00098 IN ULONG DataLength // number of words 00099 ); 00100 00101 typedef 00102 NTSTATUS 00103 (*PDRIVER_IO_PORT_ULONG ) ( 00104 IN ULONG_PTR Context, 00105 IN ULONG Port, 00106 IN UCHAR AccessMode, 00107 IN OUT PULONG Data 00108 ); 00109 00110 typedef 00111 NTSTATUS 00112 (*PDRIVER_IO_PORT_ULONG_STRING ) ( 00113 IN ULONG_PTR Context, 00114 IN ULONG Port, 00115 IN UCHAR AccessMode, 00116 IN OUT PULONG Data, 00117 IN ULONG DataLength // number of dwords 00118 ); 00119 00120 #endif // _V86EMUL_

Generated on Sat May 15 19:42:17 2004 for test by doxygen 1.3.7