Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenhdl.h
Go to the documentation of this file.
00001 /* 00002 * PROJECT: ReactOS Kernel 00003 * LICENSE: BSD - See COPYING.ARM in the top level directory 00004 * FILE: ntoskrnl/include/internal/hdl.h 00005 * PURPOSE: Internal header for the Configuration Manager 00006 * PROGRAMMERS: ReactOS Portable Systems Group 00007 */ 00008 #define _HDL_ 00009 #include <cportlib/cportlib.h> 00010 #include <ndk/extypes.h> 00011 00012 // 00013 // Define this if you want debugging support 00014 // 00015 #define _HDL_DEBUG_ 0x00 00016 00017 // 00018 // These define the Debug Masks Supported 00019 // 00020 #define HDL_XXX_DEBUG 0x01 00021 00022 // 00023 // Debug/Tracing support 00024 // 00025 #if _HDL_DEBUG_ 00026 #ifdef NEW_DEBUG_SYSTEM_IMPLEMENTED // enable when Debug Filters are implemented 00027 #define HDLTRACE DbgPrintEx 00028 #else 00029 #define HDLTRACE(x, ...) \ 00030 if (x & HdlpTraceLevel) DbgPrint(__VA_ARGS__) 00031 #endif 00032 #else 00033 #define HDLTRACE(x, fmt, ...) DPRINT(fmt, ##__VA_ARGS__) 00034 #endif 00035 00036 // 00037 // Well-known messages that Io and Pnp post to the kernel log 00038 // 00039 typedef enum _HEADLESS_LOG_MESSAGE 00040 { 00041 HeadlessLogDriverLoad = 1, 00042 HeadlessLogDriverSuccess, 00043 HeadlessLogDriverFailed, 00044 HeadlessLogEventFailed, 00045 HeadlessLogObjectFailed, 00046 HeadlessLogDirectoryFailed, 00047 HeadlessLogPnpFailed, 00048 HeadlessLogPnpFailed2, 00049 HeadlessLogBootDriversFailed, 00050 HeadlessLogNtdllFailed, 00051 HeadlessLogSystemDriversFailed, 00052 HeadlessLogReassignSystemRootFailed, 00053 HeadlessLogProtectSystemRootFailed, 00054 HeadlessLogConvertSystemRootFailed, 00055 HeadlessLogConvertDeviceNameFailed, 00056 HeadlessLogGroupOrderListFailed, 00057 HeadlessLogGroupTableFailed 00058 // 00059 // There are more, but not applicable to ReactOS, I believe 00060 // 00061 } HEADLESS_LOG_MESSAGE; 00062 00063 // 00064 // Headless Log Entry 00065 // 00066 typedef struct _HEADLESS_LOG_ENTRY 00067 { 00068 SYSTEM_TIMEOFDAY_INFORMATION TimeOfEntry; 00069 PWCHAR String; 00070 } HEADLESS_LOG_ENTRY, *PHEADLESS_LOG_ENTRY; 00071 00072 // 00073 // Headless Bugcheck Information 00074 // 00075 typedef struct _HEADLESS_BLUE_SCREEN_DATA 00076 { 00077 PUCHAR Property; 00078 PUCHAR XMLData; 00079 struct _HEADLESS_BLUE_SCREEN_DATA *Next; 00080 } HEADLESS_BLUE_SCREEN_DATA, * PHEADLESS_BLUE_SCREEN_DATA; 00081 00082 // 00083 // Headless Control Structure, mostly for !SAC 00084 // 00085 typedef struct _HEADLESS_GLOBALS 00086 { 00087 KSPIN_LOCK SpinLock; 00088 HANDLE PageLockHandle; 00089 PHEADLESS_LOG_ENTRY LogEntries; 00090 PUCHAR TmpBuffer; 00091 PUCHAR InputBuffer; 00092 PHEADLESS_BLUE_SCREEN_DATA BlueScreenData; 00093 union 00094 { 00095 struct 00096 { 00097 ULONG TerminalEnabled:1; 00098 ULONG InBugCheck:1; 00099 ULONG NewLogEntryAdded:1; 00100 ULONG UsedBiosSettings:1; 00101 ULONG InputProcessing:1; 00102 ULONG InputLineDone:1; 00103 ULONG ProcessingCmd:1; 00104 ULONG TerminalParity:1; 00105 ULONG TerminalStopBits:1; 00106 ULONG TerminalPortNumber:3; 00107 ULONG IsNonLegacyDevice:1; 00108 }; 00109 ULONG AllFlags; 00110 }; 00111 ULONG TerminalBaudRate; 00112 ULONG TerminalPort; 00113 PUCHAR TerminalPortAddress; 00114 LARGE_INTEGER DelayTime; 00115 ULONG MicroSecondsDelayTime; 00116 UCHAR TerminalType; 00117 SIZE_T InputBufferIndex; 00118 USHORT LogEntryLast; 00119 USHORT LogEntryStart; 00120 GUID SystemGUID; 00121 BOOLEAN IsMMIODevice; 00122 BOOLEAN IsLastCharCR; 00123 } HEADLESS_GLOBALS, *PHEADLESS_GLOBALS; 00124 00125 // 00126 // FIXME: A public header in the NDK? Ask Alex 00127 // 00128 typedef enum _HEADLESS_CMD 00129 { 00130 HeadlessCmdEnableTerminal = 1, 00131 HeadlessCmdCheckForReboot, 00132 HeadlessCmdPutString, 00133 HeadlessCmdClearDisplay, 00134 HeadlessCmdClearToEndOfDisplay, 00135 HeadlessCmdClearToEndOfLine, 00136 HeadlessCmdDisplayAttributesOff, 00137 HeadlessCmdDisplayInverseVideo, 00138 HeadlessCmdSetColor, 00139 HeadlessCmdPositionCursor, 00140 HeadlessCmdTerminalPoll, 00141 HeadlessCmdGetByte, 00142 HeadlessCmdGetLine, 00143 HeadlessCmdStartBugCheck, 00144 HeadlessCmdDoBugCheckProcessing, 00145 HeadlessCmdQueryInformation, 00146 HeadlessCmdAddLogEntry, 00147 HeadlessCmdDisplayLog, 00148 HeadlessCmdSetBlueScreenData, 00149 HeadlessCmdSendBlueScreenData, 00150 HeadlessCmdQueryGUID, 00151 HeadlessCmdPutData 00152 } HEADLESS_CMD, *PHEADLESS_CMD; 00153 00154 typedef enum _HEADLESS_TERM_PORT_TYPE 00155 { 00156 HeadlessUndefinedPortType = 0, 00157 HeadlessSerialPort 00158 } HEADLESS_TERM_PORT_TYPE, *PHEADLESS_TERM_PORT_TYPE; 00159 00160 typedef enum _HEADLESS_TERM_SERIAL_PORT 00161 { 00162 SerialPortUndefined = 0, 00163 ComPort1, 00164 ComPort2, 00165 ComPort3, 00166 ComPort4 00167 } HEADLESS_TERM_SERIAL_PORT, *PHEADLESS_TERM_SERIAL_PORT; 00168 00169 typedef struct _HEADLESS_RSP_QUERY_INFO 00170 { 00171 HEADLESS_TERM_PORT_TYPE PortType; 00172 union 00173 { 00174 struct 00175 { 00176 BOOLEAN TerminalAttached; 00177 BOOLEAN UsedBiosSettings; 00178 HEADLESS_TERM_SERIAL_PORT TerminalPort; 00179 PUCHAR TerminalPortBaseAddress; 00180 ULONG TerminalBaudRate; 00181 UCHAR TerminalType; 00182 } Serial; 00183 }; 00184 } HEADLESS_RSP_QUERY_INFO, *PHEADLESS_RSP_QUERY_INFO; 00185 00186 typedef struct _HEADLESS_CMD_PUT_STRING 00187 { 00188 UCHAR String[1]; 00189 } HEADLESS_CMD_PUT_STRING, *PHEADLESS_CMD_PUT_STRING; 00190 00191 NTSTATUS 00192 NTAPI 00193 HeadlessDispatch( 00194 IN HEADLESS_CMD Command, 00195 IN PVOID InputBuffer, 00196 IN SIZE_T InputBufferSize, 00197 OUT PVOID OutputBuffer, 00198 OUT PSIZE_T OutputBufferSize 00199 ); 00200 00201 // 00202 // Global variables accessible from all of Hdl 00203 // 00204 extern PHEADLESS_GLOBALS HeadlessGlobals; 00205 00206 // 00207 // Inlined functions 00208 // 00209 //#include "hdl_x.h" Generated on Sat May 26 2012 04:36:07 for ReactOS by
1.7.6.1
|