ReactOS 0.4.15-dev-7918-g2a2556c
hdl.h File Reference
#include <cportlib/cportlib.h>
#include <ndk/extypes.h>
Include dependency graph for hdl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _HEADLESS_LOG_ENTRY
 
struct  _HEADLESS_CMD_SET_BLUE_SCREEN_DATA
 
struct  _HEADLESS_GLOBALS
 
struct  _HEADLESS_RSP_QUERY_INFO
 
struct  _HEADLESS_CMD_ENABLE_TERMINAL
 
struct  _HEADLESS_CMD_PUT_STRING
 
struct  _HEADLESS_CMD_SET_COLOR
 
struct  _HEADLESS_CMD_POSITION_CURSOR
 
struct  _HEADLESS_RSP_GET_BYTE
 

Macros

#define _HDL_
 
#define _HDL_DEBUG_   0x00
 
#define HDL_XXX_DEBUG   0x01
 
#define HDLTRACE(x, fmt, ...)   DPRINT(fmt, ##__VA_ARGS__)
 

Typedefs

typedef enum _HEADLESS_LOG_MESSAGE HEADLESS_LOG_MESSAGE
 
typedef struct _HEADLESS_LOG_ENTRY HEADLESS_LOG_ENTRY
 
typedef struct _HEADLESS_LOG_ENTRYPHEADLESS_LOG_ENTRY
 
typedef struct _HEADLESS_CMD_SET_BLUE_SCREEN_DATA HEADLESS_CMD_SET_BLUE_SCREEN_DATA
 
typedef struct _HEADLESS_CMD_SET_BLUE_SCREEN_DATAPHEADLESS_CMD_SET_BLUE_SCREEN_DATA
 
typedef struct _HEADLESS_GLOBALS HEADLESS_GLOBALS
 
typedef struct _HEADLESS_GLOBALSPHEADLESS_GLOBALS
 
typedef enum _HEADLESS_CMD HEADLESS_CMD
 
typedef enum _HEADLESS_CMDPHEADLESS_CMD
 
typedef enum _HEADLESS_TERM_PORT_TYPE HEADLESS_TERM_PORT_TYPE
 
typedef enum _HEADLESS_TERM_PORT_TYPEPHEADLESS_TERM_PORT_TYPE
 
typedef enum _HEADLESS_TERM_SERIAL_PORT HEADLESS_TERM_SERIAL_PORT
 
typedef enum _HEADLESS_TERM_SERIAL_PORTPHEADLESS_TERM_SERIAL_PORT
 
typedef struct _HEADLESS_RSP_QUERY_INFO HEADLESS_RSP_QUERY_INFO
 
typedef struct _HEADLESS_RSP_QUERY_INFOPHEADLESS_RSP_QUERY_INFO
 
typedef struct _HEADLESS_CMD_ENABLE_TERMINAL HEADLESS_CMD_ENABLE_TERMINAL
 
typedef struct _HEADLESS_CMD_ENABLE_TERMINALPHEADLESS_CMD_ENABLE_TERMINAL
 
typedef struct _HEADLESS_CMD_PUT_STRING HEADLESS_CMD_PUT_STRING
 
typedef struct _HEADLESS_CMD_PUT_STRINGPHEADLESS_CMD_PUT_STRING
 
typedef struct _HEADLESS_CMD_SET_COLOR HEADLESS_CMD_SET_COLOR
 
typedef struct _HEADLESS_CMD_SET_COLORPHEADLESS_CMD_SET_COLOR
 
typedef struct _HEADLESS_CMD_POSITION_CURSOR HEADLESS_CMD_POSITION_CURSOR
 
typedef struct _HEADLESS_CMD_POSITION_CURSORPHEADLESS_CMD_POSITION_CURSOR
 
typedef struct _HEADLESS_RSP_GET_BYTE HEADLESS_RSP_GET_BYTE
 
typedef struct _HEADLESS_RSP_GET_BYTEPHEADLESS_RSP_GET_BYTE
 

Enumerations

enum  _HEADLESS_LOG_MESSAGE {
  HeadlessLogDriverLoad = 1 , HeadlessLogDriverSuccess , HeadlessLogDriverFailed , HeadlessLogEventFailed ,
  HeadlessLogObjectFailed , HeadlessLogDirectoryFailed , HeadlessLogPnpFailed , HeadlessLogPnpFailed2 ,
  HeadlessLogBootDriversFailed , HeadlessLogNtdllFailed , HeadlessLogSystemDriversFailed , HeadlessLogReassignSystemRootFailed ,
  HeadlessLogProtectSystemRootFailed , HeadlessLogConvertSystemRootFailed , HeadlessLogConvertDeviceNameFailed , HeadlessLogGroupOrderListFailed ,
  HeadlessLogGroupTableFailed
}
 
enum  _HEADLESS_CMD {
  HeadlessCmdEnableTerminal = 1 , HeadlessCmdCheckForReboot , HeadlessCmdPutString , HeadlessCmdClearDisplay ,
  HeadlessCmdClearToEndOfDisplay , HeadlessCmdClearToEndOfLine , HeadlessCmdDisplayAttributesOff , HeadlessCmdDisplayInverseVideo ,
  HeadlessCmdSetColor , HeadlessCmdPositionCursor , HeadlessCmdTerminalPoll , HeadlessCmdGetByte ,
  HeadlessCmdGetLine , HeadlessCmdStartBugCheck , HeadlessCmdDoBugCheckProcessing , HeadlessCmdQueryInformation ,
  HeadlessCmdAddLogEntry , HeadlessCmdDisplayLog , HeadlessCmdSetBlueScreenData , HeadlessCmdSendBlueScreenData ,
  HeadlessCmdQueryGUID , HeadlessCmdPutData
}
 
enum  _HEADLESS_TERM_PORT_TYPE { HeadlessUndefinedPortType = 0 , HeadlessSerialPort }
 
enum  _HEADLESS_TERM_SERIAL_PORT {
  SerialPortUndefined = 0 , ComPort1 , ComPort2 , ComPort3 ,
  ComPort4
}
 

Functions

NTSTATUS NTAPI HeadlessDispatch (IN HEADLESS_CMD Command, IN PVOID InputBuffer, IN SIZE_T InputBufferSize, OUT PVOID OutputBuffer, OUT PSIZE_T OutputBufferSize)
 

Variables

PHEADLESS_GLOBALS HeadlessGlobals
 

Macro Definition Documentation

◆ _HDL_

#define _HDL_

Definition at line 8 of file hdl.h.

◆ _HDL_DEBUG_

#define _HDL_DEBUG_   0x00

Definition at line 15 of file hdl.h.

◆ HDL_XXX_DEBUG

#define HDL_XXX_DEBUG   0x01

Definition at line 20 of file hdl.h.

◆ HDLTRACE

#define HDLTRACE (   x,
  fmt,
  ... 
)    DPRINT(fmt, ##__VA_ARGS__)

Definition at line 33 of file hdl.h.

Typedef Documentation

◆ HEADLESS_CMD

◆ HEADLESS_CMD_ENABLE_TERMINAL

◆ HEADLESS_CMD_POSITION_CURSOR

◆ HEADLESS_CMD_PUT_STRING

◆ HEADLESS_CMD_SET_BLUE_SCREEN_DATA

◆ HEADLESS_CMD_SET_COLOR

◆ HEADLESS_GLOBALS

◆ HEADLESS_LOG_ENTRY

◆ HEADLESS_LOG_MESSAGE

◆ HEADLESS_RSP_GET_BYTE

◆ HEADLESS_RSP_QUERY_INFO

◆ HEADLESS_TERM_PORT_TYPE

◆ HEADLESS_TERM_SERIAL_PORT

◆ PHEADLESS_CMD

◆ PHEADLESS_CMD_ENABLE_TERMINAL

◆ PHEADLESS_CMD_POSITION_CURSOR

◆ PHEADLESS_CMD_PUT_STRING

◆ PHEADLESS_CMD_SET_BLUE_SCREEN_DATA

◆ PHEADLESS_CMD_SET_COLOR

◆ PHEADLESS_GLOBALS

◆ PHEADLESS_LOG_ENTRY

◆ PHEADLESS_RSP_GET_BYTE

◆ PHEADLESS_RSP_QUERY_INFO

◆ PHEADLESS_TERM_PORT_TYPE

◆ PHEADLESS_TERM_SERIAL_PORT

Enumeration Type Documentation

◆ _HEADLESS_CMD

Enumerator
HeadlessCmdEnableTerminal 
HeadlessCmdCheckForReboot 
HeadlessCmdPutString 
HeadlessCmdClearDisplay 
HeadlessCmdClearToEndOfDisplay 
HeadlessCmdClearToEndOfLine 
HeadlessCmdDisplayAttributesOff 
HeadlessCmdDisplayInverseVideo 
HeadlessCmdSetColor 
HeadlessCmdPositionCursor 
HeadlessCmdTerminalPoll 
HeadlessCmdGetByte 
HeadlessCmdGetLine 
HeadlessCmdStartBugCheck 
HeadlessCmdDoBugCheckProcessing 
HeadlessCmdQueryInformation 
HeadlessCmdAddLogEntry 
HeadlessCmdDisplayLog 
HeadlessCmdSetBlueScreenData 
HeadlessCmdSendBlueScreenData 
HeadlessCmdQueryGUID 
HeadlessCmdPutData 

Definition at line 127 of file hdl.h.

128{
@ HeadlessCmdPutString
Definition: hdl.h:131
@ HeadlessCmdStartBugCheck
Definition: hdl.h:142
@ HeadlessCmdDisplayInverseVideo
Definition: hdl.h:136
@ HeadlessCmdTerminalPoll
Definition: hdl.h:139
@ HeadlessCmdSetColor
Definition: hdl.h:137
@ HeadlessCmdDisplayAttributesOff
Definition: hdl.h:135
@ HeadlessCmdGetByte
Definition: hdl.h:140
@ HeadlessCmdPutData
Definition: hdl.h:150
@ HeadlessCmdPositionCursor
Definition: hdl.h:138
@ HeadlessCmdEnableTerminal
Definition: hdl.h:129
@ HeadlessCmdClearDisplay
Definition: hdl.h:132
@ HeadlessCmdQueryGUID
Definition: hdl.h:149
@ HeadlessCmdGetLine
Definition: hdl.h:141
@ HeadlessCmdClearToEndOfLine
Definition: hdl.h:134
@ HeadlessCmdDisplayLog
Definition: hdl.h:146
@ HeadlessCmdClearToEndOfDisplay
Definition: hdl.h:133
@ HeadlessCmdAddLogEntry
Definition: hdl.h:145
@ HeadlessCmdDoBugCheckProcessing
Definition: hdl.h:143
@ HeadlessCmdCheckForReboot
Definition: hdl.h:130
@ HeadlessCmdSendBlueScreenData
Definition: hdl.h:148
@ HeadlessCmdSetBlueScreenData
Definition: hdl.h:147
@ HeadlessCmdQueryInformation
Definition: hdl.h:144
enum _HEADLESS_CMD * PHEADLESS_CMD
enum _HEADLESS_CMD HEADLESS_CMD

◆ _HEADLESS_LOG_MESSAGE

Enumerator
HeadlessLogDriverLoad 
HeadlessLogDriverSuccess 
HeadlessLogDriverFailed 
HeadlessLogEventFailed 
HeadlessLogObjectFailed 
HeadlessLogDirectoryFailed 
HeadlessLogPnpFailed 
HeadlessLogPnpFailed2 
HeadlessLogBootDriversFailed 
HeadlessLogNtdllFailed 
HeadlessLogSystemDriversFailed 
HeadlessLogReassignSystemRootFailed 
HeadlessLogProtectSystemRootFailed 
HeadlessLogConvertSystemRootFailed 
HeadlessLogConvertDeviceNameFailed 
HeadlessLogGroupOrderListFailed 
HeadlessLogGroupTableFailed 

Definition at line 39 of file hdl.h.

40{
58 //
59 // There are more, but not applicable to ReactOS, I believe
60 //
@ HeadlessLogPnpFailed
Definition: hdl.h:47
@ HeadlessLogReassignSystemRootFailed
Definition: hdl.h:52
@ HeadlessLogDriverLoad
Definition: hdl.h:41
@ HeadlessLogBootDriversFailed
Definition: hdl.h:49
@ HeadlessLogSystemDriversFailed
Definition: hdl.h:51
@ HeadlessLogProtectSystemRootFailed
Definition: hdl.h:53
@ HeadlessLogObjectFailed
Definition: hdl.h:45
@ HeadlessLogNtdllFailed
Definition: hdl.h:50
@ HeadlessLogConvertSystemRootFailed
Definition: hdl.h:54
@ HeadlessLogDriverFailed
Definition: hdl.h:43
@ HeadlessLogConvertDeviceNameFailed
Definition: hdl.h:55
@ HeadlessLogGroupTableFailed
Definition: hdl.h:57
@ HeadlessLogDriverSuccess
Definition: hdl.h:42
@ HeadlessLogGroupOrderListFailed
Definition: hdl.h:56
@ HeadlessLogEventFailed
Definition: hdl.h:44
@ HeadlessLogDirectoryFailed
Definition: hdl.h:46
@ HeadlessLogPnpFailed2
Definition: hdl.h:48
enum _HEADLESS_LOG_MESSAGE HEADLESS_LOG_MESSAGE

◆ _HEADLESS_TERM_PORT_TYPE

Enumerator
HeadlessUndefinedPortType 
HeadlessSerialPort 

Definition at line 153 of file hdl.h.

154{
enum _HEADLESS_TERM_PORT_TYPE * PHEADLESS_TERM_PORT_TYPE
enum _HEADLESS_TERM_PORT_TYPE HEADLESS_TERM_PORT_TYPE
@ HeadlessUndefinedPortType
Definition: hdl.h:155
@ HeadlessSerialPort
Definition: hdl.h:156

◆ _HEADLESS_TERM_SERIAL_PORT

Enumerator
SerialPortUndefined 
ComPort1 
ComPort2 
ComPort3 
ComPort4 

Definition at line 159 of file hdl.h.

160{
162 ComPort1,
163 ComPort2,
164 ComPort3,
enum _HEADLESS_TERM_SERIAL_PORT * PHEADLESS_TERM_SERIAL_PORT
enum _HEADLESS_TERM_SERIAL_PORT HEADLESS_TERM_SERIAL_PORT
@ SerialPortUndefined
Definition: hdl.h:161
@ ComPort3
Definition: hdl.h:164
@ ComPort1
Definition: hdl.h:162
@ ComPort2
Definition: hdl.h:163
@ ComPort4
Definition: hdl.h:165

Function Documentation

◆ HeadlessDispatch()

NTSTATUS NTAPI HeadlessDispatch ( IN HEADLESS_CMD  Command,
IN PVOID  InputBuffer,
IN SIZE_T  InputBufferSize,
OUT PVOID  OutputBuffer,
OUT PSIZE_T  OutputBufferSize 
)

Definition at line 570 of file hdlsterm.c.

575{
576 /* Check for stubs that will expect something even with headless off */
577 if (!HeadlessGlobals)
578 {
579 /* Don't allow the SAC to connect */
581
582 /* Send bogus reply */
588 {
589 if (!(OutputBuffer) || !(OutputBufferSize))
590 {
592 }
593
594 RtlZeroMemory(OutputBuffer, *OutputBufferSize);
595 }
596
597 return STATUS_SUCCESS;
598 }
599
600 /* Do the real work */
601 return HdlspDispatch(Command,
603 InputBufferSize,
605 OutputBufferSize);
606}
PHEADLESS_GLOBALS HeadlessGlobals
Definition: hdlsterm.c:16
NTSTATUS NTAPI HdlspDispatch(IN HEADLESS_CMD Command, IN PVOID InputBuffer, IN SIZE_T InputBufferSize, OUT PVOID OutputBuffer, OUT PSIZE_T OutputBufferSize)
Definition: hdlsterm.c:250
#define STATUS_SUCCESS
Definition: shellext.h:65
Definition: shell.h:41
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
#define STATUS_UNSUCCESSFUL
Definition: udferr_usr.h:132
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
Definition: wdfiotarget.h:863
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
Definition: wdfiotarget.h:953

Referenced by ConMgrInitialize(), ConMgrProcessInputLine(), ConMgrWriteData(), DriverEntry(), InbvDisplayString(), InbvSetTextColor(), InbvSolidColorFill(), InitializeDeviceData(), InitializeMachineInformation(), RegisterBlueScreenMachineInformation(), TimerDpcRoutine(), and UTF8EncodeAndSend().

Variable Documentation

◆ HeadlessGlobals