{{page>en:templates:fapiint}} ====== DosSysTrace ====== ===== Brief ===== Writes a trace record to the system trace buffer. It provides a high speed event recording mechanism which may be used by PM and non-PM threads in ring 3 and ring 2 and by detached processes. ===== Syntax ===== APIRET APIENTRY16 DosSysTrace (USHORT major, USHORT cBuffer, USHORT minor, PCHAR pBuffer) ===== Parameters ===== * major (USHORT) input : Major code which identifies the trace record. Range reserved for user is 245-255. Valid range 0-255 * cBuffer (USHORT) input : Length of optional buffer. Valid range *0 - 512 (before 4.0 FP 10 and 3.0 FP 35) *0 - 4099 (from 3.0 FP35 and 4.0 FP10 onwards). * minor (USHORT) input : Minor code which identifies the trace record. Major-minor code pair should uniquely identify the trace record. Valid range 1 - 255 * pBuffer (PCHAR) input : Pointer to optional buffer. If cBuffer is 0, then pBuffer is ignored. ===== Return Code ===== ulrc (APIRET) returns DosSysTrace returns one of the following values * 0 NO_ERROR * 150 ERROR_SYSTEM_TRACE ===== Remarks ===== DosSysTrace creates a trace record that includes the following items: * Header Major code, minor code, time stamp, PID of logging process * Optional System Data Controlled by the TRACE command * Optional User Data Specified by the pBuffer parameter To check is tracing enabled use [[DosGetInfoSeg]]. GlobalInfoSeg contains 256bit flags area. See [[DosGetInfoSeg]] for more info. ===== Example Code ===== int main(int argc, char *argv[], char *envp[]){ APIRET rc=0; /* default return code */ USHORT major=255; /* default major code */ USHORT minor=1; /* default minor code */ USHORT cBuffer=0; /* default buffer length */ PCHAR pBuffer=NULL; /* default buffer address */ if (argc>1) { pBuffer = argv[1]; cBuffer = strlen(argv[1]); } if (argc>2) major = atol(argv[2]); if (argc>3) minor = atol(argv[3]); rc = Dos16SysTrace(major, cBuffer, minor, pBuffer); if (rc) printf("DosSysTrace retuned rc=%u\n", rc); return rc; } ===== Related Functions ===== * [[DosDumpProcess]] * [[DosForceSystemDump]] {{page>en:templates:fapi}}