📄 bsedos.mh
字号:
#define QSV_INT10ENABLED 31
#define QSV_MAX QSV_INT10ENABLED
#define DSP_IMPLIEDCUR 1
#define DSP_PATHREF 2
#define DSP_IGNORENETERR 4
#define SPU_DISABLESUPPRESSION 0
#define SPU_ENABLESUPPRESSION 1
#define SPU_NOLOGCHANGE 2
#define BEGIN_LIBPATH 1
#define END_LIBPATH 2
#define LIBPATHSTRICT 3
APIRET APIENTRY DosErrClass(ULONG,PULONG,PULONG,PULONG);
APIRET APIENTRY DosError(ULONG);
APIRET APIENTRY DosGetMessage(PCHAR*,ULONG,PCHAR,ULONG,ULONG,PCSZ,PULONG);
APIRET APIENTRY DosInsertMessage(PCHAR*,ULONG,PCSZ,ULONG,PCHAR,ULONG,PULONG);
APIRET APIENTRY DosPutMessage(HFILE,ULONG,PCHAR);
APIRET APIENTRY DosQueryExtLIBPATH(PSZ,ULONG);
APIRET APIENTRY DosQueryMessageCP(PCHAR,ULONG,PCSZ,PULONG);
APIRET APIENTRY DosQuerySysInfo(ULONG,ULONG,PVOID,ULONG);
APIRET APIENTRY DosScanEnv(PCSZ,PSZ*);
APIRET APIENTRY DosSearchPath(ULONG,PCSZ,PCSZ,PBYTE,ULONG);
APIRET APIENTRY DosSetExtLIBPATH(PCSZ,ULONG);
APIRET APIENTRY DosSuppressPopUps(ULONG,CHAR);
#endif
#if defined(INCL_DOSSESMGR) || defined(INCL_DOSFILEMGR)
#define FAPPTYP_NOTSPEC 0x0000
#define FAPPTYP_NOTWINDOWCOMPAT 0x0001
#define FAPPTYP_WINDOWCOMPAT 0x0002
#define FAPPTYP_WINDOWAPI 0x0003
#define FAPPTYP_BOUND 0x0008
#define FAPPTYP_DLL 0x0010
#define FAPPTYP_DOS 0x0020
#define FAPPTYP_PHYSDRV 0x0040
#define FAPPTYP_VIRTDRV 0x0080
#define FAPPTYP_PROTDLL 0x0100
#define FAPPTYP_WINDOWSREAL 0x0200
#define FAPPTYP_WINDOWSPROT 0x0400
#define FAPPTYP_WINDOWSPROT31 0x1000
#define FAPPTYP_32BIT 0x4000
#define FAPPTYP_EXETYPE 0x0003
#endif
#ifdef INCL_DOSSESMGR
#define SSF_RELATED_INDEPENDENT 0
#define SSF_RELATED_CHILD 1
#define SSF_FGBG_FORE 0
#define SSF_FGBG_BACK 1
#define SSF_TRACEOPT_NONE 0
#define SSF_TRACEOPT_TRACE 1
#define SSF_TRACEOPT_TRACEALL 2
#define SSF_INHERTOPT_SHELL 0
#define SSF_INHERTOPT_PARENT 1
#define SSF_TYPE_DEFAULT 0
#define SSF_TYPE_FULLSCREEN 1
#define SSF_TYPE_WINDOWABLEVIO 2
#define SSF_TYPE_PM 3
#define SSF_TYPE_VDM 4
#define SSF_TYPE_GROUP 5
#define SSF_TYPE_DLL 6
#define SSF_TYPE_WINDOWEDVDM 7
#define SSF_TYPE_PDD 8
#define SSF_TYPE_VDD 9
#define SSF_CONTROL_VISIBLE 0x0000
#define SSF_CONTROL_INVISIBLE 0x0001
#define SSF_CONTROL_MAXIMIZE 0x0002
#define SSF_CONTROL_MINIMIZE 0x0004
#define SSF_CONTROL_NOAUTOCLOSE 0x0008
#define SSF_CONTROL_SETPOS 0x8000
#define SET_SESSION_UNCHANGED 0
#define SET_SESSION_SELECTABLE 1
#define SET_SESSION_NON_SELECTABLE 2
#define SET_SESSION_BOND 1
#define SET_SESSION_NO_BOND 2
#define STOP_SESSION_SPECIFIED 0
#define STOP_SESSION_ALL 1
typedef struct _STATUSDATA {
USHORT Length;
USHORT SelectInd;
USHORT BondInd;
} STATUSDATA, *PSTATUSDATA;
typedef struct _STARTDATA {
USHORT Length;
USHORT Related;
USHORT FgBg;
USHORT TraceOpt;
PSZ PgmTitle;
PSZ PgmName;
PBYTE PgmInputs;
PBYTE TermQ;
PBYTE Environment;
USHORT InheritOpt;
USHORT SessionType;
PSZ IconFile;
ULONG PgmHandle;
USHORT PgmControl;
USHORT InitXPos;
USHORT InitYPos;
USHORT InitXSize;
USHORT InitYSize;
USHORT Reserved;
PSZ ObjectBuffer;
ULONG ObjectBuffLen;
} STARTDATA, *PSTARTDATA;
APIRET APIENTRY DosQueryAppType(PCSZ,PULONG);
APIRET APIENTRY DosSelectSession(ULONG);
APIRET APIENTRY DosSetSession(ULONG,PSTATUSDATA);
APIRET APIENTRY DosStartSession(PSTARTDATA,PULONG,PPID);
APIRET APIENTRY DosStopSession(ULONG,ULONG);
#endif
#ifdef INCL_DOSDEVICES
#define DEVINFO_PRINTER 0
#define DEVINFO_RS232 1
#define DEVINFO_FLOPPY 2
#define DEVINFO_COPROCESSOR 3
#define DEVINFO_SUBMODEL 4
#define DEVINFO_MODEL 5
#define DEVINFO_ADAPTER 6
#define INFO_COUNT_PARTITIONABLE_DISKS 1
#define INFO_GETIOCTLHANDLE 2
#define INFO_FREEIOCTLHANDLE 3
APIRET APIENTRY DosDevConfig(PVOID,ULONG);
APIRET APIENTRY DosDevIOCtl(HFILE,ULONG,ULONG,PVOID,ULONG,PULONG,PVOID,ULONG,PULONG);
APIRET APIENTRY DosPhysicalDisk(ULONG,PVOID,ULONG,PVOID,ULONG);
#endif
#ifdef INCL_DOSMVDM
typedef LHANDLE HVDD, *PHVDD;
APIRET APIENTRY DosCloseVDD(HVDD);
APIRET APIENTRY DosOpenVDD(PCSZ,PHVDD);
APIRET APIENTRY DosQueryDOSProperty(SGID,PCSZ,ULONG,PCSZ);
APIRET APIENTRY DosRequestVDD(HVDD,SGID,ULONG,ULONG,PVOID,ULONG,PVOID);
APIRET APIENTRY DosSetDOSProperty(SGID,PCSZ,ULONG,PCSZ);
#endif
#ifdef INCL_DOSPROFILE
#define PROF_ORDINAL 133
#define PROF_SYSTEM 0
#define PROF_USER 1
#define PROF_USEDD 2
#define PROF_KERNEL 4
#define PROF_VERBOSE 8
#define PROF_ENABLE 16
#define PROF_ALLOC 0
#define PROF_CLEAR 1
#define PROF_ON 2
#define PROF_OFF 3
#define PROF_DUMP 4
#define PROF_FREE 5
#define PROF_SHIFT 2
#define PROF_MOD_NAME_SIZE 10
#define PROF_END_OF_DATA 13
#define QS_PROCESS 0x0001
#define QS_SEMAPHORE 0x0002
#define QS_MTE 0x0004
#define QS_FILESYS 0x0008
#define QS_SHMEMORY 0x0010
#define QS_DISK 0x0020
#define QS_HWCONFIG 0x0040
#define QS_NAMEDPIPE 0x0080
#define QS_THREAD 0x0100
#define QS_MODVER 0x0200
#define QS_SUPPORTED (QS_PROCESS|QS_SEMAPHORE|QS_MTE|QS_FILESYS|QS_SHMEMORY|QS_MODVER)
#define QS_SYSSEM_WAITING 0x01
#define QS_SYSSEM_MUXWAITING 0x02
#define QS_SYSSEM_OWNER_DIED 0x04
#define QS_SYSSEM_EXCLUSIVE 0x08
#define QS_SYSSEM_NAME_CLEANUP 0x10
#define QS_SYSSEM_THREAD_OWNER_DIED 0x20
#define QS_SYSSEM_EXITLIST_OWNER 0x40
#define QS_DC_SEM_SHARED 0x0001
#define QS_DCMW_WAIT_ANY 0x0002
#define QS_DCMW_WAIT_ALL 0x0004
#define QS_DCM_MUTEX_SEM 0x0008
#define QS_DCE_EVENT_SEM 0x0010
#define QS_DCMW_MUX_SEM 0x0020
#define QS_DC_SEM_PM 0x0040
#define QS_DE_POSTED 0x0040
#define QS_DM_OWNER_DIED 0x0080
#define QS_DMW_MTX_MUX 0x0100
#define QS_DHO_SEM_OPEN 0x0200
#define QS_DE_16BIT_MW 0x0400
#define QS_DCE_POSTONE 0x0800
#define QS_DCE_AUTORESET 0x1000
#define QS_END 0
#define PADSHORT USHORT pad_sh
#define PADCHAR UCHAR pad_ch
#define CMD_KI_RDCNT 0x63
typedef struct _QSGREC {
ULONG cThrds;
ULONG c32SSem;
ULONG cMFTNodes;
} QSGREC;
typedef struct _QSTREC {
ULONG RecType;
USHORT tid;
USHORT slot;
ULONG sleepid;
ULONG priority;
ULONG systime;
ULONG usertime;
UCHAR state;
PADCHAR;
PADSHORT;
} QSTREC;
typedef struct _QSPREC {
ULONG RecType;
QSTREC FAR *pThrdRec;
USHORT pid;
USHORT ppid;
ULONG type;
ULONG stat;
ULONG sgid;
USHORT hMte;
USHORT cTCB;
ULONG c32PSem;
VOID FAR *p32SemRec;
USHORT c16Sem;
USHORT cLib;
USHORT cShrMem;
USHORT cFH;
USHORT FAR *p16SemRec;
USHORT FAR *pLibRec;
USHORT FAR *pShrMemRec;
USHORT FAR *pFSRec;
} QSPREC;
typedef struct _QSS16REC {
ULONG NextRec;
USHORT SysSemOwner ;
UCHAR SysSemFlag ;
UCHAR SysSemRefCnt ;
UCHAR SysSemProcCnt ;
UCHAR SysSemPad ;
USHORT pad_sh;
USHORT SemPtr;
CHAR SemName;
} QSS16REC;
typedef struct _QSS16HEADREC {
ULONG SRecType;
ULONG SpNextRec;
ULONG S32SemRec;
ULONG S16TblOff;
ULONG pSem16Rec;
} QSS16HEADREC;
typedef struct _QSMREC {
ULONG MemNextRec;
USHORT hmem;
USHORT sel;
USHORT refcnt;
CHAR Memname;
} QSMREC;
typedef struct _QSOPENQ {
USHORT pidOpener;
USHORT OpenCt;
} QSOPENQ;
typedef struct _QSEVENT {
ULONG *pMuxQ;
USHORT PostCt;
} QSEVENT;
typedef struct _QSMUTEX {
ULONG *pMuxQ;
USHORT ReqCt;
USHORT SlotNum;
} QSMUTEX;
typedef struct _QSMUX {
VOID *pSemRec;
USHORT cSemRec;
USHORT WaitCt;
} QSMUX;
typedef union _QSHUN {
QSEVENT qsSEvt;
QSMUTEX qsSMtx;
QSMUX qsSMux;
} QSHUN;
typedef struct _QSS32REC {
VOID *pNextRec;
USHORT flags;
PADSHORT;
UCHAR *pName;
QSHUN qsh;
ULONG blockid;
USHORT index;
USHORT OpenCt;
QSOPENQ OpenQ[1];
} QSS32REC;
typedef struct _QSLOBJREC {
ULONG oaddr;
ULONG osize;
ULONG oflags;
} QSLOBJREC;
typedef struct _QSLREC {
VOID FAR *pNextRec;
USHORT hmte;
USHORT fFlat;
ULONG ctImpMod;
ULONG ctObj;
QSLOBJREC FAR *pObjInfo;
UCHAR FAR *pName;
} QSLREC;
typedef _Packed struct _QSEXLREC {
struct _QSEXLREC *next;
USHORT hndmod;
USHORT pid;
USHORT type;
ULONG refcnt;
ULONG segcnt;
VOID *_reserved_;
UCHAR FAR *name;
ULONG ModuleVersion;
UCHAR FAR *ShortModName;
ULONG modref;
} QSEXLREC;
typedef struct _QSSFT {
USHORT sfn;
USHORT refcnt;
USHORT flags;
USHORT flags2;
USHORT mode;
USHORT mode2;
ULONG size;
USHORT hVPB;
USHORT attr;
PADSHORT;
} QSSFT;
typedef struct _QSFREC {
ULONG RecType;
VOID *pNextRec;
ULONG ctSft;
QSSFT *pSft;
} QSFREC;
typedef struct _QSPTRREC {
QSGREC *pGlobalRec;
QSPREC *pProcRec;
QSS16HEADREC *p16SemRec;
QSS32REC *p32SemRec;
QSMREC *pMemRec;
QSLREC *pLibRec;
QSMREC *pShrMemRec;
QSFREC *pFSRec;
} QSPTRREC;
typedef struct _CPUUTIL {
ULONG ulTimeLow;
ULONG ulTimeHigh;
ULONG ulIdleLow;
ULONG ulIdleHigh;
ULONG ulBusyLow;
ULONG ulBusyHigh;
ULONG ulIntrLow;
ULONG ulIntrHigh;
} CPUUTIL, *PCPUUTIL;
APIRET APIENTRY DosAliasPerfCtrs(ULONG,ULONG,PBYTE*,PULONG);
APIRET APIENTRY DosConfigurePerf(ULONG,ULONG,ULONG,ULONG,PCSZ,BOOL32);
APIRET APIENTRY DosDeconPerf(VOID);
APIRET APIENTRY DosPerfSysCall(ULONG,ULONG,ULONG,ULONG);
APIRET APIENTRY DosQuerySysState(ULONG,ULONG,PID,TID,PVOID,ULONG);
APIRET APIENTRY DosRegisterPerfCtrs(PBYTE,PBYTE,ULONG);
APIRET APIENTRY DosTmrQueryFreq(PULONG);
APIRET APIENTRY DosTmrQueryTime(PQWORD);
#endif
#ifdef INCL_DOSSPINLOCK
#define PROC_OFFLINE 0
#define PROC_ONLINE 1
typedef ULONG HSPINLOCK, *PHSPINLOCK;
VOID APIENTRY DosAcquireSpinLock(HSPINLOCK);
APIRET APIENTRY DosCreateSpinLock(PHSPINLOCK);
APIRET APIENTRY DosFreeSpinLock(HSPINLOCK);
APIRET APIENTRY DosGetProcessorStatus(ULONG,PULONG);
APIRET APIENTRY DosPerfSysCall(ULONG,ULONG,ULONG,ULONG);
VOID APIENTRY DosReleaseSpinLock(HSPINLOCK);
APIRET APIENTRY DosSetProcessorStatus(ULONG,ULONG);
APIRET APIENTRY DosTestPSD(PCSZ);
#endif
:include cplusepi.sp
#ifdef INCL_BDCALLS
#include <bdcalls.h>
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -