Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

151 lines
2.7 KiB

#define INCL_DOSFILEMGS
#include <os2.h>
typedef +++D/WORD+++ INT FD; /* file handle */
typedef LONG LFO; /* file offset */
typedef +++D/WORD+++ INT WORD;
typedef CHAR FAR *LPSTR;
typedef +++D/WORD+++ CHAR BYTE;
FD APIENTRY FdCreate (LPSTR) ;
FD APIENTRY FdOpen (LPSTR, BYTE) ;
WORD APIENTRY CbWriteFdLpb (FD, LPSTR, WORD);
WORD APIENTRY CbReadFdLpb (FD, LPSTR, WORD);
LFO APIENTRY LSeekFd (FD, LFO, BYTE);
INT APIENTRY EnCloseFd (FD);
INT APIENTRY EnUnLinkSz (LPSTR);
INT APIENTRY EnRenameSzSz (LPSTR, LPSTR);
FD APIENTRY FdOpen(lpFileName, bMode)
LPSTR lpFileName;
BYTE bMode;
{
HFILE hf;
USHORT usAction;
if (DosOpen(lpFileName,
&hf,
&usAction,
0L,
FILE_NORMAL,
FILE_OPEN,
OPEN_ACCESS_READWRITE | OPEN_SHARE_DENYNONE,
0l)) {
return(-1);
} else {
return(hf);
}
}
FD APIENTRY FdCreate(lpFileName)
LPSTR lpFileName;
{
HFILE hf;
USHORT usAction;
if (DosOpen(lpFileName,
&hf,
&usAction,
0L,
FILE_NORMAL,
FILE_CREATE | FILE_OPEN,
OPEN_ACCESS_READWRITE | OPEN_SHARE_DENYNONE,
0L)) {
return(-1);
} else {
return(hf);
}
}
INT APIENTRY EnCloseFd(hf)
HFILE hf;
{
if (DosClose(hf)) {
return(-1);
} else {
return(0);
}
}
WORD APIENTRY CbReadFdLpb (hf,lpBuffer,cbBuffer)
HFILE hf;
LPSTR lpBuffer;
WORD cbBuffer;
{
USHORT cbBytesRead;
INT errCode;
errCode = DosRead(hf,lpBuffer,cbBuffer,&cbBytesRead);
if (errCode) {
return(-1);
} else {
return(cbBytesRead);
}
}
WORD APIENTRY CbWriteFdLpb (hf,lpBuffer,cbBuffer)
HFILE hf;
LPSTR lpBuffer;
WORD cbBuffer;
{
USHORT cbBytesRead;
INT errCode;
errCode = DosWrite(hf,lpBuffer,cbBuffer,&cbBytesRead);
if (errCode) {
return(-1);
} else {
return(cbBytesRead);
}
}
LFO APIENTRY LSeekFd (hf, lDistance, fMethod)
HFILE hf;
ULONG lDistance;
USHORT fMethod;
{
ULONG lNewLocation;
INT errCode;
errCode = DosChgFilePtr(hf,lDistance,FILE_BEGIN,&lNewLocation);
if (errCode) {
return(-1);
} else {
return(lNewLocation);
}
}
INT APIENTRY EnUnLinkSz(lpFileName)
LPSTR lpFileName;
{
if (DosDelete(lpFileName,0L)) {
return(-1);
} else {
return(0);
}
}
INT APIENTRY EnRenameSzSz (lpOldName,lpNewName)
LPSTR lpOldName;
LPSTR lpNewName;
{
if (DosMove(lpOldName, lpNewName, 0L)) {
return(-1);
} else {
return(0);
}
}