DevHelp_RAS
The DevHlp_RAS function provides a service for device drivers to add information to the System Trace buffer.
Syntax
C
USHORT APIENTRY DevHelp_RAS (USHORT Major, USHORT Minor, USHORT Size, PBYTE Data);
Assembler
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,Data ; pointer to trace data MOV DL,28H ; DevHlp_RAS function code CALL [Device_Help] ; invoke device helper
Parameters
C
- Major (USHORT) - input
- Major trace event code (240-255)
- Minor (USHORT) - input
- Minor trace event code (0-255)
- Size (USHORT) - input
- Length of the variable length area to be recorded (0-512)
- Data (PBYTE) - input
- Pointer to the area to be traced (address parameter)
Assembler
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,Data ; pointer to trace data MOV DL,28H ; DevHlp_RAS function code
Return Code
C
Success indicator: 0
Possible errors: Data not traced.
An example of when data would not be traced is if the major event code is not currently selected for tracing.
Assembler
If CF = 0 Trace record placed in trace buffer Else Data not traced Possible errors: 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 InfoSeg.
All registers are preserved. Interrupts are disabled while the trace data is saved and then re-enabled if they were initially enabled.
Example Code
C
#include "dhcalls.h" USHORT APIENTRY DevHelp_RAS (USHORT Major, USHORT Minor, USHORT Size, PBYTE Data);