#ifndef _EXVECTOR_ #define _EXVECTOR_ #define NDIS_WIN 1 #define EXPORT /* NOINC */ #ifndef _STDCALL #define _STDCALL 1 #endif #ifdef _STDCALL #define _API __stdcall #else #define _API #endif // // Segment definition macros. These assume the segment groupings used by // Chicago/MS-DOS 7. // #define _LCODE code_seg("_LTEXT", "LCODE") #define _LDATA data_seg("_LDATA", "LCODE") #ifdef DEBUG #define _PCODE NDIS_LCODE #define _PDATA NDIS_LDATA #else #define _PCODE code_seg("_PTEXT", "PCODE") #define _PDATA data_seg("_PDATA", "PCODE") #endif #define _ICODE NDIS_PCODE #define _IDATA NDIS_PDATA #ifndef _SEG_MACROS #define ICODE NDIS_ICODE #define IDATA NDIS_IDATA #define PCODE NDIS_PCODE #define PDATA NDIS_PDATA #define LCODE NDIS_LCODE #define LDATA NDIS_LDATA #endif #define _INIT_FUNCTION(f) alloc_text(_ITEXT,f) #define _PAGEABLE_FUNCTION(f) alloc_text(_PTEXT,f) #define _LOCKED_FUNCTION(f) alloc_text(_LTEXT,f) /* INC */ #define _MAJOR_VERSION 0x01 #define _MINOR_VERSION 0x00 /* NOINC */ /* INC */ /* ASM ;=========================================================================== ; Segment definition macros. These assume the segment groupings used by ; Chicago/MS-DOS 7. ; ;=========================================================================== LCODE_SEG TEXTEQU LCODE_ENDS TEXTEQU LDATA_SEG TEXTEQU LDATA_ENDS TEXTEQU IFDEF DEBUG PCODE_SEG TEXTEQU PCODE_ENDS TEXTEQU PDATA_SEG TEXTEQU PDATA_ENDS TEXTEQU ELSE PCODE_SEG TEXTEQU PCODE_ENDS TEXTEQU PDATA_SEG TEXTEQU PDATA_ENDS TEXTEQU ENDIF ICODE_SEG TEXTEQU ICODE_ENDS TEXTEQU IDATA_SEG TEXTEQU IDATA_ENDS TEXTEQU */ #ifndef i386 #define i386 #endif /* NOINC */ #ifdef DEBUG #define DEVL 1 #endif /* INC */ #ifndef TRUE #define TRUE 1 #define FALSE 0 #endif /* NOINC */ #include #define ASSERT(a) if (!(a)) DbgBreakPoint() #ifdef DEBUG #define DbgBreakPoint() __asm { \ __asm int 3 \ } void __cdecl DbgPrint(); #define DBG_PRINTF(A) DbgPrint A #else #define DbgBreakPoint() #define DBG_PRINTF(A) #endif // // Macros required by DOS to compensate for differences with NT. // #define IN #define OUT #define OPTIONAL #define INTERNAL #define UNALIGNED typedef INT NDIS_SPIN_LOCK, * PNDIS_SPIN_LOCK; typedef UCHAR BOOLEAN, *PBOOLEAN; typedef LARGE_INTEGER PHYSICAL_ADDRESS, *PPHYSICAL_ADDRESS; typedef signed short WCH, *PWCH; typedef char CCHAR, *PCCHAR; typedef PVOID NDIS_HANDLE, *PNDIS_HANDLE; typedef DWORD DEVNODE; typedef ULONG _STATUS; typedef _STATUS *_PSTATUS; // BUGBUG for compatibility with NT, ask them to remove it from // Their drivers typedef _STATUS NTSTATUS; typedef CCHAR KIRQL; typedef KIRQL *PKIRQL; #define HIGH_LEVEL 31 #define PDRIVER_OBJECT PVOID #define PUNICODE_STRING PVOID #define PDEVICE_OBJECT PVOID #define PKDPC PVOID #define STATUS_SUCCESS 0 #define STATUS_UNSUCCESSFUL 0xC0000001 #define INSTALL_RING_3_HANDLER 0x42424242 #define SET_CONTEXT 0xc3c3c3cc BOOL VXDINLINE VWIN32_IsClientWin32( VOID ) { VxDCall( _VWIN32_IsClientWin32 ); } PVOID VXDINLINE VWIN32_GetCurrentProcessHandle( VOID ) { VxDCall( VWIN32_GetCurrentProcessHandle ); } PVOID VXDINLINE VWIN32_Set_Thread_Context(PVOID pR0ThreadHandle, PCONTEXT pContext) { VxDCall( _VWIN32_Set_Thread_Context ); } #endif // _EXVECTOR_