📄 bsedos.mh
字号:
APIRET APIENTRY DosProtectSetFileSizeL(HFILE,LONGLONG,FHLOCK);
APIRET APIENTRY DosProtectWrite(HFILE,ULONG,ULONG,PULONG,FHLOCK);
APIRET APIENTRY DosQueryCurrentDir(ULONG,PBYTE,PULONG);
APIRET APIENTRY DosQueryCurrentDisk(PULONG,PULONG);
APIRET APIENTRY DosQueryFHState(HFILE,PULONG);
APIRET APIENTRY DosQueryFileInfo(HFILE,ULONG,PVOID,ULONG);
APIRET APIENTRY DosQueryFSAttach(PCSZ,ULONG,ULONG,PFSQBUFFER2,PULONG);
APIRET APIENTRY DosQueryFSInfo(ULONG,ULONG,PVOID,ULONG);
APIRET APIENTRY DosQueryHType(HFILE,PULONG,PULONG);
APIRET APIENTRY DosQueryPathInfo(PCSZ,ULONG,PVOID,ULONG);
APIRET APIENTRY DosQueryVerify(BOOL32*);
APIRET APIENTRY DosRead(HFILE,PVOID,ULONG,PULONG);
APIRET APIENTRY DosResetBuffer(HFILE);
APIRET APIENTRY DosSetCurrentDir(PCSZ);
APIRET APIENTRY DosSetDefaultDisk(ULONG);
APIRET APIENTRY DosSetFHState(HFILE,ULONG);
APIRET APIENTRY DosSetFileInfo(HFILE,ULONG,PVOID,ULONG);
APIRET APIENTRY DosSetFileLocks(HFILE,PFILELOCK,PFILELOCK,ULONG,ULONG);
APIRET APIENTRY DosSetFileLocksL(HFILE,PFILELOCKL,PFILELOCKL,ULONG,ULONG);
APIRET APIENTRY DosSetFilePtr(HFILE,LONG,ULONG,PULONG);
APIRET APIENTRY DosSetFilePtrL(HFILE,LONGLONG,ULONG,PLONGLONG);
APIRET APIENTRY DosSetFileSize(HFILE,ULONG);
APIRET APIENTRY DosSetFileSizeL(HFILE,LONGLONG);
APIRET APIENTRY DosSetFSInfo(ULONG,ULONG,PVOID,ULONG);
APIRET APIENTRY DosSetMaxFH(ULONG);
APIRET APIENTRY DosSetPathInfo(PCSZ,ULONG,PVOID,ULONG,ULONG);
APIRET APIENTRY DosSetRelMaxFH(PLONG,PULONG);
APIRET APIENTRY DosSetVerify(BOOL32);
APIRET APIENTRY DosShutdown(ULONG);
APIRET APIENTRY DosWrite(HFILE,PVOID,ULONG,PULONG);
#endif
#if defined(INCL_DOSMEMMGR) || !defined(INCL_NOCOMMON)
#define DosSubAlloc DosSubAllocMem
#define DOSSUBALLOC DosSubAllocMem
#define DosSubFree DosSubFreeMem
#define DOSSUBFREE DosSubFreeMem
#define DosSubSet DosSubSetMem
#define DOSSUBSET DosSubSetMem
#define DosSubUnset DosSubUnsetMem
#define DOSSUBUNSET DosSubUnsetMem
#define PAG_READ 0x00000001
#define PAG_WRITE 0x00000002
#define PAG_EXECUTE 0x00000004
#define PAG_GUARD 0x00000008
#define PAG_COMMIT 0x00000010
#define PAG_DECOMMIT 0x00000020
#define PAG_DEFAULT 0x00000400
#define PAG_SHARED 0x00002000
#define PAG_FREE 0x00004000
#define PAG_BASE 0x00010000
#define OBJ_TILE 0x00000040
#define OBJ_PROTECTED 0x00000080
#define OBJ_GETTABLE 0x00000100
#define OBJ_GIVEABLE 0x00000200
#define OBJ_ANY 0x00000400
#define DOSSUB_INIT 1
#define DOSSUB_GROW 2
#define DOSSUB_SPARSE_OBJ 4
#define DOSSUB_SERIALIZE 8
#define PAG_NPOUT 0x00000000
#define PAG_PRESENT 0x00000001
#define PAG_NPIN 0x00000002
#define PAG_PRESMASK 0x00000003
#define PAG_INVALID 0x00000000
#define PAG_RESIDENT 0x00000010
#define PAG_SWAPPABLE 0x00000020
#define PAG_DISCARDABLE 0x00000030
#define PAG_TYPEMASK 0x00000030
#define fPERM (PAG_EXECUTE | PAG_READ | PAG_WRITE)
#define fSHARE (OBJ_GETTABLE | OBJ_GIVEABLE)
#define fALLOC (OBJ_TILE | PAG_COMMIT | fPERM)
#define fALLOCSHR (OBJ_TILE | PAG_COMMIT | fSHARE | fPERM)
APIRET APIENTRY DosAllocMem(PPVOID,ULONG,ULONG);
APIRET APIENTRY DosAllocSharedMem(PPVOID,PCSZ,ULONG,ULONG);
APIRET APIENTRY DosFreeMem(PVOID);
APIRET APIENTRY DosGetNamedSharedMem(PPVOID,PCSZ,ULONG);
APIRET APIENTRY DosGetSharedMem(PVOID,ULONG);
APIRET APIENTRY DosGiveSharedMem(PVOID pb, PID pid, ULONG flag);
APIRET APIENTRY DosQueryMem(PVOID,PULONG,PULONG);
APIRET APIENTRY DosSetMem(PVOID,ULONG,ULONG);
APIRET APIENTRY DosSubAllocMem(PVOID,PPVOID,ULONG);
APIRET APIENTRY DosSubFreeMem(PVOID,PVOID,ULONG);
APIRET APIENTRY DosSubSetMem(PVOID,ULONG,ULONG);
APIRET APIENTRY DosSubUnsetMem(PVOID);
#endif
#ifdef INCL_DOSMODULEMGR
#define PT_16BIT 0
#define PT_32BIT 1
#define HW_CFG_MCA 0x00000001
#define HW_CFG_EISA 0x00000002
#define HW_CFG_ABIOS_SUPPORTED 0x00000004
#define HW_CFG_ABIOS_PRESENT 0x00000008
#define HW_CFG_PCI 0x00000010
#define HW_CFG_IBM_ABIOS 0x00000000
#define HW_CFG_OEM_ABIOS 0x00000020
#define HW_CFG_PENTIUM_CPU 0x00000040
APIRET APIENTRY DosFreeModule(HMODULE hmod);
APIRET APIENTRY DosLoadModule(PSZ,ULONG,PCSZ,PHMODULE);
APIRET APIENTRY DosQueryABIOSSupport(ULONG);
APIRET APIENTRY DosQueryModFromEIP(PHMODULE,PULONG,ULONG,PCHAR,PULONG,ULONG);
APIRET APIENTRY DosQueryModuleHandle(PCSZ,PHMODULE);
APIRET APIENTRY DosQueryModuleName(HMODULE,ULONG,PCHAR);
APIRET APIENTRY DosQueryProcAddr(HMODULE,ULONG,PCSZ,PFN*);
APIRET APIENTRY DosQueryProcType(HMODULE,ULONG,PCSZ,PULONG);
APIRET APIENTRY DosReplaceModule(PCSZ,PCSZ,PCSZ);
#endif
#ifdef INCL_DOSNMPIPES
#define NP_STATE_DISCONNECTED 1
#define NP_STATE_LISTENING 2
#define NP_STATE_CONNECTED 3
#define NP_STATE_CLOSING 4
#define NP_ACCESS_INBOUND 0x0000
#define NP_ACCESS_OUTBOUND 0x0001
#define NP_ACCESS_DUPLEX 0x0002
#define NP_INHERIT 0x0000
#define NP_NOINHERIT 0x0080
#define NP_WRITEBEHIND 0x0000
#define NP_NOWRITEBEHIND 0x4000
#define NP_READMODE_BYTE 0x0000
#define NP_READMODE_MESSAGE 0x0100
#define NP_TYPE_BYTE 0x0000
#define NP_TYPE_MESSAGE 0x0400
#define NP_END_CLIENT 0x0000
#define NP_END_SERVER 0x4000
#define NP_WAIT 0x0000
#define NP_NOWAIT 0x8000
#define NP_UNLIMITED_INSTANCES 0x00FF
#define NP_DEFAULT_WAIT 0
#define NP_INDEFINITE_WAIT (-1)
typedef LHANDLE HPIPE, *PHPIPE;
typedef struct _AVAILDATA {
USHORT cbpipe;
USHORT cbmessage;
} AVAILDATA, *PAVAILDATA;
typedef struct _PIPEINFO {
USHORT cbOut;
USHORT cbIn;
BYTE cbMaxInst;
BYTE cbCurInst;
BYTE cbName;
CHAR szName[1];
} PIPEINFO, *PPIPEINFO;
typedef struct _PIPESEMSTATE {
BYTE fStatus;
BYTE fFlag;
USHORT usKey;
USHORT usAvail;
} PIPESEMSTATE, *PPIPESEMSTATE;
APIRET APIENTRY DosCallNPipe(PCSZ,PVOID,ULONG,PVOID,ULONG,PULONG,ULONG);
APIRET APIENTRY DosConnectNPipe(HPIPE);
APIRET APIENTRY DosCreateNPipe(PCSZ,PHPIPE,ULONG,ULONG,ULONG,ULONG,ULONG);
APIRET APIENTRY DosDisConnectNPipe(HPIPE);
APIRET APIENTRY DosPeekNPipe(HPIPE,PVOID,ULONG,PULONG,PAVAILDATA,PULONG);
APIRET APIENTRY DosQueryNPHState(HPIPE,PULONG);
APIRET APIENTRY DosQueryNPipeInfo(HPIPE,ULONG,PVOID,ULONG);
APIRET APIENTRY DosQueryNPipeSemState(HSEM,PPIPESEMSTATE,ULONG);
APIRET APIENTRY DosSetNPHState(HPIPE,ULONG);
APIRET APIENTRY DosSetNPipeSem(HPIPE,HSEM,ULONG);
APIRET APIENTRY DosTransactNPipe(HPIPE,PVOID,ULONG,PVOID,ULONG,PULONG);
APIRET APIENTRY DosWaitNPipe(PCSZ,ULONG);
#endif
#ifdef INCL_DOSQUEUES
#define QUE_FIFO 0
#define QUE_LIFO 1
#define QUE_PRIORITY 2
#define QUE_NOCONVERT_ADDRESS 0
#define QUE_CONVERT_ADDRESS 4
typedef LHANDLE HQUEUE, *PHQUEUE;
typedef struct _REQUESTDATA {
PID pid;
ULONG ulData;
} REQUESTDATA, *PREQUESTDATA;
APIRET APIENTRY DosCloseQueue(HQUEUE);
APIRET APIENTRY DosCreatePipe(PHFILE,PHFILE,ULONG);
APIRET APIENTRY DosCreateQueue(PHQUEUE,ULONG,PCSZ);
APIRET APIENTRY DosOpenQueue(PPID,PHQUEUE,PCSZ);
APIRET APIENTRY DosPeekQueue(HQUEUE,PREQUESTDATA,PULONG,PPVOID,PULONG,BOOL32,PBYTE,HEV);
APIRET APIENTRY DosPurgeQueue(HQUEUE);
APIRET APIENTRY DosQueryQueue(HQUEUE,PULONG);
APIRET APIENTRY DosReadQueue(HQUEUE,PREQUESTDATA,PULONG,PPVOID,ULONG,BOOL32,PBYTE,HEV);
APIRET APIENTRY DosWriteQueue(HQUEUE,ULONG,ULONG,PVOID,ULONG);
#endif
#ifdef INCL_DOSSEMAPHORES
#define DC_SEM_SHARED 1
#define DCMW_WAIT_ANY 2
#define DCMW_WAIT_ALL 4
#define DCE_POSTONE 0x0800
#define DCE_AUTORESET 0x1000
#define SEM_IMMEDIATE_RETURN 0
#define SEM_INDEFINITE_WAIT (-1)
typedef struct _SEMRECORD {
HSEM hsemCur;
ULONG ulUser;
} SEMRECORD, *PSEMRECORD;
APIRET APIENTRY DosAddMuxWaitSem(HMUX,PSEMRECORD);
APIRET APIENTRY DosCloseEventSem(HEV);
APIRET APIENTRY DosCloseMutexSem(HMTX);
APIRET APIENTRY DosCloseMuxWaitSem(HMUX);
APIRET APIENTRY DosCreateEventSem(PCSZ,PHEV,ULONG,BOOL32);
APIRET APIENTRY DosCreateMutexSem(PCSZ,PHMTX,ULONG,BOOL32);
APIRET APIENTRY DosCreateMuxWaitSem(PCSZ,PHMUX,ULONG,PSEMRECORD,ULONG);
APIRET APIENTRY DosDeleteMuxWaitSem(HMUX,HSEM);
APIRET APIENTRY DosOpenEventSem(PCSZ,PHEV);
APIRET APIENTRY DosOpenMutexSem(PCSZ,PHMTX);
APIRET APIENTRY DosOpenMuxWaitSem(PCSZ,PHMUX);
APIRET APIENTRY DosPostEventSem(HEV);
APIRET APIENTRY DosQueryEventSem(HEV,PULONG);
APIRET APIENTRY DosQueryMutexSem(HMTX,PPID,PTID,PULONG);
APIRET APIENTRY DosQueryMuxWaitSem(HMUX,PULONG,PSEMRECORD,PULONG);
APIRET APIENTRY DosReleaseMutexSem(HMTX);
APIRET APIENTRY DosRequestMutexSem(HMTX,ULONG);
APIRET APIENTRY DosResetEventSem(HEV,PULONG);
APIRET APIENTRY DosWaitEventSem(HEV,ULONG);
APIRET APIENTRY DosWaitMuxWaitSem(HMUX,ULONG,PULONG);
#endif
#ifdef INCL_DOSMONITORS
#define DosMonClose DOS16MONCLOSE
#define DosMonOpen DOS16MONOPEN
#define DosMonRead DOS16MONREAD
#define DosMonReg DOS16MONREG
#define DosMonWrite DOS16MONWRITE
typedef SHANDLE HMONITOR;
typedef HMONITOR *PHMONITOR;
USHORT APIENTRY16 DosMonClose(HMONITOR);
USHORT APIENTRY16 DosMonOpen(PSZ,PHMONITOR);
USHORT APIENTRY16 DosMonRead(PBYTE,USHORT,PBYTE,PUSHORT);
USHORT APIENTRY16 DosMonReg(HMONITOR,PBYTE,PBYTE,USHORT,USHORT);
USHORT APIENTRY16 DosMonWrite(PBYTE,PBYTE,USHORT);
#endif
#ifdef INCL_DOSNLS
#define DosCaseMap DosMapCase
#define DosGetCollate DosQueryCollate
#define DosGetCp DosQueryCp
#define DosGetCtryInfo DosQueryCtryInfo
#define DosGetDBCSEv DosQueryDBCSEnv
#define DosSetProcCp DosSetProcessCp
typedef struct _COUNTRYCODE {
ULONG country;
ULONG codepage;
} COUNTRYCODE, *PCOUNTRYCODE;
typedef struct _COUNTRYINFO {
ULONG country;
ULONG codepage;
ULONG fsDateFmt;
CHAR szCurrency[5];
CHAR szThousandsSeparator[2];
CHAR szDecimal[2];
CHAR szDateSeparator[2];
CHAR szTimeSeparator[2];
UCHAR fsCurrencyFmt;
UCHAR cDecimalPlace;
UCHAR fsTimeFmt;
USHORT abReserved1[2];
CHAR szDataSeparator[2];
USHORT abReserved2[5];
} COUNTRYINFO, *PCOUNTRYINFO;
APIRET APIENTRY DosMapCase(ULONG,PCOUNTRYCODE,PCHAR);
APIRET APIENTRY DosQueryCollate(ULONG,PCOUNTRYCODE,PCHAR,PULONG);
APIRET APIENTRY DosQueryCp(ULONG,PULONG,PULONG);
APIRET APIENTRY DosQueryCtryInfo(ULONG,PCOUNTRYCODE,PCOUNTRYINFO,PULONG);
APIRET APIENTRY DosQueryDBCSEnv(ULONG,PCOUNTRYCODE,PCHAR);
APIRET APIENTRY DosSetProcessCp(ULONG);
#endif
#ifdef INCL_DOSEXCEPTIONS
#define SIG_UNSETFOCUS 0
#define SIG_SETFOCUS 1
#include <bsexcpt.h>
APIRET APIENTRY DosAcknowledgeSignalException(ULONG);
APIRET APIENTRY DosEnterMustComplete(PULONG);
APIRET APIENTRY DosExitMustComplete(PULONG);
APIRET APIENTRY DosQueryThreadContext(TID,ULONG,PCONTEXTRECORD);
APIRET APIENTRY DosRaiseException(PEXCEPTIONREPORTRECORD);
APIRET APIENTRY DosSendSignalException(PID,ULONG);
APIRET APIENTRY DosSetExceptionHandler(PEXCEPTIONREGISTRATIONRECORD);
APIRET APIENTRY DosSetSignalExceptionFocus(BOOL32,PULONG);
APIRET APIENTRY DosUnsetExceptionHandler(PEXCEPTIONREGISTRATIONRECORD);
APIRET APIENTRY DosUnwindException(PEXCEPTIONREGISTRATIONRECORD,PVOID,PEXCEPTIONREPORTRECORD);
#endif
#if defined(INCL_DOSRESOURCES) || !defined(INCL_NOCOMMON)
#define RT_POINTER 1
#define RT_BITMAP 2
#define RT_MENU 3
#define RT_DIALOG 4
#define RT_STRING 5
#define RT_FONTDIR 6
#define RT_FONT 7
#define RT_ACCELTABLE 8
#define RT_RCDATA 9
#define RT_MESSAGE 10
#define RT_DLGINCLUDE 11
#define RT_VKEYTBL 12
#define RT_KEYTBL 13
#define RT_CHARTBL 14
#define RT_DISPLAYINFO 15
#define RT_FKASHORT 16
#define RT_FKALONG 17
#define RT_HELPTABLE 18
#define RT_HELPSUBTABLE 19
#define RT_FDDIR 20
#define RT_FD 21
#define RT_MAX 22
#define RT_RESNAMES 255
#define RF_ORDINALID 0x80000000
#endif
#ifdef INCL_DOSRESOURCES
#define DosGetResource2 DosGetResource
APIRET APIENTRY DosFreeResource(PVOID);
APIRET APIENTRY DosGetResource(HMODULE,ULONG,ULONG,PPVOID);
APIRET APIENTRY DosQueryResourceSize(HMODULE,ULONG,ULONG,PULONG);
#endif
#if defined(INCL_DOSDATETIME) || !defined(INCL_NOCOMMON)
typedef struct _DATETIME {
UCHAR hours;
UCHAR minutes;
UCHAR seconds;
UCHAR hundredths;
UCHAR day;
UCHAR month;
USHORT year;
SHORT timezone;
UCHAR weekday;
} DATETIME, *PDATETIME;
APIRET APIENTRY DosGetDateTime(PDATETIME);
APIRET APIENTRY DosSetDateTime(PDATETIME);
#endif
#ifdef INCL_DOSDATETIME
#define DosTimerAsync DosAsyncTimer
#define DosTimerStart DosStartTimer
#define DosTimerStop DosStopTimer
typedef LHANDLE HTIMER;
typedef HTIMER *PHTIMER;
APIRET APIENTRY DosAsyncTimer(ULONG,HSEM,PHTIMER);
APIRET APIENTRY DosStartTimer(ULONG,HSEM,PHTIMER);
APIRET APIENTRY DosStopTimer(HTIMER);
#endif
#ifdef INCL_DOSMISC
#define DDP_DISABLEPROCDUMP 0
#define DDP_ENABLEPROCDUMP 1
#define DDP_PERFORMPROCDUMP 2
#define FERR_DISABLEHARDERR 0
#define FERR_ENABLEHARDERR 1
#define FERR_ENABLEEXCEPTION 0
#define FERR_DISABLEEXCEPTION 2
#define QSV_MAX_PATH_LENGTH 1
#define QSV_MAX_TEXT_SESSIONS 2
#define QSV_MAX_PM_SESSIONS 3
#define QSV_MAX_VDM_SESSIONS 4
#define QSV_BOOT_DRIVE 5
#define QSV_DYN_PRI_VARIATION 6
#define QSV_MAX_WAIT 7
#define QSV_MIN_SLICE 8
#define QSV_MAX_SLICE 9
#define QSV_PAGE_SIZE 10
#define QSV_VERSION_MAJOR 11
#define QSV_VERSION_MINOR 12
#define QSV_VERSION_REVISION 13
#define QSV_MS_COUNT 14
#define QSV_TIME_LOW 15
#define QSV_TIME_HIGH 16
#define QSV_TOTPHYSMEM 17
#define QSV_TOTRESMEM 18
#define QSV_TOTAVAILMEM 19
#define QSV_MAXPRMEM 20
#define QSV_MAXSHMEM 21
#define QSV_TIMER_INTERVAL 22
#define QSV_MAX_COMP_LENGTH 23
#define QSV_FOREGROUND_FS_SESSION 24
#define QSV_FOREGROUND_PROCESS 25
#define QSV_NUMPROCESSORS 26
#define QSV_MAXHPRMEM 27
#define QSV_MAXHSHMEM 28
#define QSV_MAXPROCESSES 29
#define QSV_VIRTUALADDRESSLIMIT 30
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -