windows-nt/Source/XPSP1/NT/base/fs/rdr2/csc/inc/oslayeru.h
2020-09-26 16:20:57 +08:00

212 lines
6.4 KiB
C

#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)