DevHlp_RAS (Add a Trace Record to the System Trace Buffer)
The DevHlp_RAS function provides a service for device drivers to
add information to the System Trace buffer.
Note: DevHlp_RAS is a 16-bit API.
MOV AX,MajorCode ; major trace event code (240-255)
MOV BX,Length ; length of data area (0-512 bytes)
MOV CX,MinorCode ; minor trace event code (0-255)
LDS SI,pData ; pointer to trace data
MOV DL,28H ; DevHlp_RAS function code
CALL [Device_Help] ; invoke device helper
16-bit MASM Example
Parameters.
MajorCode
The major code to be placed in the trace
buffer. Only the low order byte is used. The high order byte should be
0 for future compatibility reasons, but no error checking of the high order
byte is performed.
Length
The
length of the area pointed to by the address parameter. If a length greater
than 512 is specified, only 512 bytes will be recorded. If a length of
0 is specified, the address parameter will not be used; however, a dummy
doubleword must be pushed on the stack so that all calls use the same stack
space.
MinorCode
The minor
code to be placed in the trace buffer. This code identifies the specific
trace event. Only the low order byte is used. The high order byte should
be 0 for future compatibility reasons, but no error checking of the high
order byte is performed.
pData
The
address of the variable length data area which contains additional information
that the system trace function will add to the trace buffer. If a length
of 0 is specified, the address will not be used, but a value must still
be added to the stack.
Results.
If CF = 0 Trace record placed in trace buffer
Else
Data not traced
The possible errors are :
- Tracing suspended
- Minor code not being traced
- PID not being traced
- Trace overrun
Remarks.
The trace facility maintains an array of 32 bytes (256 bits), in which each
bit represents a major event code. This array is updated each time the user
enables or disables tracing of a major event. The device driver must check
this array before calling DevHlp_RAS to ensure that the major event
specified is currently enabled for tracing. This array is located in the
Global Infoformation Segment.
All registers are preserved. Interrupts are disabled while the trace data
is saved and then re-enabled if they were initially enabled.
[Back: DosSysTrace (Add a Trace Record to the System Trace Buffer)]
[Next: DosGetSTDA (Get The System Trace Data Area)]