#define COPY_BUFF_SIZE 4096 #define BCS_OEM 1 #define BCS_UNI 2 #define ACCESS_MODE_MASK 0x0007 /* Mask for access mode bits */ #define ACCESS_READONLY 0x0000 /* open for read-only access */ #define ACCESS_WRITEONLY 0x0001 /* open for write-only access */ #define ACCESS_READWRITE 0x0002 /* open for read and write access */ #define ACCESS_EXECUTE 0x0003 /* open for execute access */ #define SHARE_MODE_MASK 0x0070 /* Mask for share mode bits */ #define SHARE_COMPATIBILITY 0x0000 /* open in compatability mode */ #define SHARE_DENYREADWRITE 0x0010 /* open for exclusive access */ #define SHARE_DENYWRITE 0x0020 /* open allowing read-only access */ #define SHARE_DENYREAD 0x0030 /* open allowing write-only access */ #define SHARE_DENYNONE 0x0040 /* open allowing other processes access */ #define SHARE_FCB 0x0070 /* FCB mode open */ /** Values for ir_options for VFN_OPEN: */ #define ACTION_MASK 0xff /* Open Actions Mask */ #define ACTION_OPENEXISTING 0x01 /* open an existing file */ #define ACTION_REPLACEEXISTING 0x02 /* open existing file and set length */ #define ACTION_CREATENEW 0x10 /* create a new file, fail if exists */ #define ACTION_OPENALWAYS 0x11 /* open file, create if does not exist */ #define ACTION_CREATEALWAYS 0x12 /* create a new file, even if it exists */ /** Alternate method: bit assignments for the above values: */ #define ACTION_EXISTS_OPEN 0x01 // BIT: If file exists, open file #define ACTION_TRUNCATE 0x02 // BIT: Truncate file #define ACTION_NEXISTS_CREATE 0x10 // BIT: If file does not exist, create #define OPEN_FLAGS_NOINHERIT 0x0080 //#define OPEN_FLAGS_NO_CACHE R0_NO_CACHE /* 0x0100 */ #define OPEN_FLAGS_NO_COMPRESS 0x0200 #define OPEN_FLAGS_ALIAS_HINT 0x0400 #define OPEN_FLAGS_REOPEN 0x0800 #define OPEN_FLAGS_RSVD_1 0x1000 /* NEVER #define this */ #define OPEN_FLAGS_NOCRITERR 0x2000 #define OPEN_FLAGS_COMMIT 0x4000 #define OPEN_FLAGS_RSVD_2 0x8000 /* NEVER #define this */ #define OPEN_FLAGS_EXTENDED_SIZE 0x00010000 #define OPEN_FLAGS_RAND_ACCESS_HINT 0x00020000 #define OPEN_FLAGS_SEQ_ACCESS_HINT 0x00040000 #define OPEN_EXT_FLAGS_MASK 0x00FF0000 #define ATTRIB_DEL_ANY 0x0007 // Attrib passed to ring0 delete #define FLAG_RW_OSLAYER_INSTRUMENT 0x00000001 #define FLAG_RW_OSLAYER_PAGED_BUFFER 0x00000002 typedef HANDLE CSCHFILE; typedef int (*PATHPROC)(USHORT *, USHORT *, LPVOID); #define CSCHFILE_NULL 0 //typedef USHORT USHORT; //typedef ULONG ULONG; #define _FILETIME FILETIME #define _WIN32_FIND_DATA WIN32_FIND_DATA #define string_t unsigned short * #define FILE_ATTRIBUTE_ALL (FILE_ATTRIBUTE_READONLY| FILE_ATTRIBUTE_HIDDEN \ | FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_DIRECTORY \ | FILE_ATTRIBUTE_ARCHIVE) #define IsFile(dwAttr) (!((dwAttr) & (FILE_ATTRIBUTE_DIRECTORY|FILE_ATTRIBUTE_DEVICE))) #define CheckHeap(a) {;} #define GetLastErrorLocal() GetLastError() #define SetLastErrorLocal(X) SetLastError(X) #ifndef KdPrint #ifdef DEBUG #define KdPrint(X) PrintFn X #else #define KdPrint(X) #endif #endif CSCHFILE CreateFileLocal(LPSTR lpName); CSCHFILE OpenFileLocal(LPSTR lpName); int DeleteFileLocal(LPSTR lpName, USHORT usAttrib); int FileExists (LPSTR lpName); long ReadFileLocal (CSCHFILE handle, ULONG pos, LPVOID lpBuff, long lCount); long WriteFileLocal (CSCHFILE handle, ULONG pos, LPVOID lpBuff, long lCount); long WriteFileInContextLocal (CSCHFILE, ULONG, LPVOID, long); ULONG CloseFileLocal (CSCHFILE handle); ULONG CloseFileLocalFromHandleCache (CSCHFILE handle); int GetFileSizeLocal (CSCHFILE, PULONG); int GetDiskFreeSpaceLocal(int indx , ULONG *lpuSectorsPerCluster , ULONG *lpuBytesPerSector , ULONG *lpuFreeClusters , ULONG *lpuTotalClusters ); int GetAttributesLocal (LPSTR, ULONG *); int GetAttributesLocalEx (LPSTR lpPath, BOOL fFile, ULONG *lpuAttr); int SetAttributesLocal (LPSTR, ULONG); int RenameFileLocal (LPSTR, LPSTR); int FileLockLocal(CSCHFILE, ULONG, ULONG, ULONG, BOOL); LPVOID AllocMem (ULONG uSize); VOID FreeMem (LPVOID lpBuff); //VOID CheckHeap(LPVOID lpBuff); LPVOID AllocMemPaged (ULONG uSize); VOID FreeMemPaged(LPVOID lpBuff); CSCHFILE R0OpenFile (USHORT usOpenFlags, UCHAR bAction, LPSTR lpPath); CSCHFILE OpenFileLocalEx(LPSTR lpPath, BOOL fInstrument); long ReadFileLocalEx ( CSCHFILE handle, ULONG pos, LPVOID pBuff, long lCount, BOOL fInstrument ); long WriteFileLocalEx(CSCHFILE handle, ULONG pos, LPVOID lpBuff, long lCount, BOOL fInstrument); CSCHFILE R0OpenFileEx ( USHORT usOpenFlags, UCHAR bAction, ULONG ulAttr, LPSTR lpPath, BOOL fInstrument ); long ReadFileLocalEx2(CSCHFILE handle, ULONG pos, LPVOID lpBuff, long lCount, ULONG flags); long WriteFileLocalEx2(CSCHFILE handle, ULONG pos, LPVOID lpBuff, long lCount, ULONG flags); int HexToA(ULONG ulHex, LPSTR lpBuff, int count); ULONG AtoHex(LPSTR lpBuff, int count); int wstrnicmp(const USHORT *, const USHORT *, ULONG); ULONG strmcpy(LPSTR, LPSTR, ULONG); int DosToWin32FileSize(ULONG, int *, int *); int Win32ToDosFileSize(int, int, ULONG *); int CompareTimes(_FILETIME, _FILETIME); int CompareSize(long nHighDst, long nLowDst, long nHighSrc, long nLowSrc); LPSTR mystrpbrk(LPSTR, LPSTR); int CompareTimesAtDosTimePrecision( _FILETIME ftDst, _FILETIME ftSrc ); VOID IncrementFileTime( _FILETIME *lpft ); unsigned int UniToBCS ( unsigned char *pStr, unsigned short *pUni, unsigned int length, unsigned int maxLength, int charSet ); unsigned int BCSToUni ( unsigned short *pUni, unsigned char *pStr, unsigned int length, int charSet ); ULONG wstrlen( USHORT *lpuStr ); int PUBLIC mystrnicmp( LPCSTR pStr1, LPCSTR pStr2, unsigned count ); int CreateDirectoryLocal( LPSTR lpszPath ); ULONG GetTimeInSecondsSince1970( VOID ); BOOL IterateOnUNCPathElements( USHORT *lpuPath, PATHPROC lpfn, LPVOID lpCookie ); BOOL IsPathUNC( USHORT *lpuPath, int cntMaxChars ); #define JOE_DECL_PROGRESS() #define JOE_INIT_PROGRESS(counter,nearargs) #define JOE_PROGRESS(bit)