ReactOS 0.4.16-dev-2472-gf76ed06
headless.c File Reference
#include <freeldr.h>
#include <cportlib/cportlib.h>
#include <cportlib/uartinfo.h>
#include "ntldropts.h"
#include <debug.h>
#include <pshpack1.h>
#include <poppack.h>
Include dependency graph for headless.c:

Go to the source code of this file.

Classes

struct  _SYSID_UUID_ENTRY
 

Macros

#define SYSID_TYPE_UUID   "_UUID_"
 
#define SYSID_UUID_DATA_SIZE   16
 
#define strtoulptr   strtoul
 

Typedefs

typedef struct _SYSID_UUID_ENTRY SYSID_UUID_ENTRY
 
typedef struct _SYSID_UUID_ENTRYPSYSID_UUID_ENTRY
 

Functions

VOID WinLdrLoadGUID (_Out_ PGUID SystemGuid)
 
BOOLEAN WinLdrPortInitialize (_In_ ULONG BaudRate, _In_ ULONG PortNumber, _In_ PUCHAR PortAddress, _In_ BOOLEAN TerminalConnected, _Out_ PULONG PortId)
 
VOID WinLdrPortPutByte (_In_ ULONG PortId, _In_ UCHAR Byte)
 
BOOLEAN WinLdrPortGetByte (_In_ ULONG PortId, _Out_ PUCHAR Byte)
 
BOOLEAN WinLdrPortPollOnly (_In_ ULONG PortId)
 
VOID WinLdrEnableFifo (_In_ ULONG PortId, _In_ BOOLEAN Enable)
 
VOID WinLdrInitializeHeadlessPort (VOID)
 
VOID WinLdrSetupEms (_In_ PCSTR BootOptions)
 

Variables

HEADLESS_LOADER_BLOCK LoaderRedirectionInformation
 
BOOLEAN WinLdrTerminalConnected
 
ULONG WinLdrTerminalDeviceId
 
ULONG WinLdrTerminalDelay
 
CPPORT Port [4]
 

Macro Definition Documentation

◆ strtoulptr

#define strtoulptr   strtoul

◆ SYSID_TYPE_UUID

#define SYSID_TYPE_UUID   "_UUID_"

Definition at line 19 of file headless.c.

◆ SYSID_UUID_DATA_SIZE

#define SYSID_UUID_DATA_SIZE   16

Definition at line 20 of file headless.c.

Typedef Documentation

◆ PSYSID_UUID_ENTRY

◆ SYSID_UUID_ENTRY

Function Documentation

◆ WinLdrEnableFifo()

VOID WinLdrEnableFifo ( _In_ ULONG  PortId,
_In_ BOOLEAN  Enable 
)

Definition at line 163 of file headless.c.

166{
168}
VOID NTAPI CpEnableFifo(_In_ PUCHAR Address, _In_ BOOLEAN Enable)
Definition: cport.c:41
CPPORT Port[4]
Definition: headless.c:38
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
Definition: ntddpcm.h:142
static WCHAR Address[46]
Definition: ping.c:68

Referenced by WinLdrInitializeHeadlessPort().

◆ WinLdrInitializeHeadlessPort()

VOID WinLdrInitializeHeadlessPort ( VOID  )

Definition at line 171 of file headless.c.

172{
173 ULONG PortNumber, BaudRate;
174 PUCHAR PortAddress;
175 PCSTR AnsiReset = "\x1B[m";
176 ULONG i;
177
181
182 /* Pick a port address */
183 if (PortNumber)
184 {
185 if (!PortAddress)
186 {
187 if (PortNumber < 1 || PortNumber > MAX_COM_PORTS)
188 PortNumber = 1;
190 }
191 }
192 else
193 {
194 /* No number, so no EMS */
196 return;
197 }
198
199 /* Call arch code to initialize the port */
203 PortAddress,
207 {
208 /* Port seems usable, set it up and get the BIOS GUID */
210
212
213 /* Calculate delay in us based on the baud, assume 9600 if none given */
214 if (!BaudRate)
215 {
216 BaudRate = 9600;
218 }
219
220 WinLdrTerminalDelay = (10 * 1000 * 1000) / (BaudRate / 10) / 6;
221
222 /* Send an ANSI reset sequence to get the terminal up and running */
223 for (i = 0; i < strlen(AnsiReset); i++)
224 {
227 }
228 }
229}
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
_ACRTIMP size_t __cdecl strlen(const char *)
Definition: string.c:1592
#define UlongToPtr(u)
Definition: config.h:106
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
VOID WinLdrPortPutByte(_In_ ULONG PortId, _In_ UCHAR Byte)
Definition: headless.c:138
VOID WinLdrLoadGUID(_Out_ PGUID SystemGuid)
Definition: headless.c:49
BOOLEAN WinLdrPortInitialize(_In_ ULONG BaudRate, _In_ ULONG PortNumber, _In_ PUCHAR PortAddress, _In_ BOOLEAN TerminalConnected, _Out_ PULONG PortId)
Definition: headless.c:74
VOID WinLdrEnableFifo(_In_ ULONG PortId, _In_ BOOLEAN Enable)
Definition: headless.c:163
ULONG WinLdrTerminalDeviceId
Definition: headless.c:35
HEADLESS_LOADER_BLOCK LoaderRedirectionInformation
Definition: headless.c:33
ULONG WinLdrTerminalDelay
Definition: headless.c:36
BOOLEAN WinLdrTerminalConnected
Definition: headless.c:34
#define MAX_COM_PORTS
Definition: machpc.c:29
VOID StallExecutionProcessor(ULONG Microseconds)
Definition: pchw.c:60
ULONG PortNumber
Definition: storport.c:18
PUCHAR PortAddress
Definition: arc.h:435
const char * PCSTR
Definition: typedefs.h:52
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59

Referenced by WinLdrSetupEms().

◆ WinLdrLoadGUID()

VOID WinLdrLoadGUID ( _Out_ PGUID  SystemGuid)

Definition at line 49 of file headless.c.

51{
52#if (defined(_M_IX86) || defined(_M_AMD64)) && !defined(UEFIBOOT)
53 PSYSID_UUID_ENTRY CurrentAddress;
54
55 CurrentAddress = (PSYSID_UUID_ENTRY)0xE0000;
56 while (CurrentAddress < (PSYSID_UUID_ENTRY)0x100000)
57 {
58 if (RtlCompareMemory(&CurrentAddress->Type, SYSID_TYPE_UUID, 6) == 6)
59 {
60 RtlCopyMemory(SystemGuid, &CurrentAddress->UUID, SYSID_UUID_DATA_SIZE);
61 return;
62 }
63 CurrentAddress = (PSYSID_UUID_ENTRY)((ULONG_PTR)CurrentAddress + 1);
64 }
65#else
66 _WARN("WinLdrLoadGUID needs SMBIOS table reading implementation on this platform!");
67#endif
68
70}
#define _WARN(msg)
Definition: debug.h:135
#define RtlCompareMemory(s1, s2, l)
Definition: env_spec_w32.h:465
#define SYSID_UUID_DATA_SIZE
Definition: headless.c:20
#define SYSID_TYPE_UUID
Definition: headless.c:19
struct _SYSID_UUID_ENTRY * PSYSID_UUID_ENTRY
Definition: headless.c:23
UCHAR UUID[SYSID_UUID_DATA_SIZE]
Definition: headless.c:27
UCHAR Type[6]
Definition: headless.c:24
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
uint32_t ULONG_PTR
Definition: typedefs.h:65

Referenced by WinLdrInitializeHeadlessPort().

◆ WinLdrPortGetByte()

BOOLEAN WinLdrPortGetByte ( _In_ ULONG  PortId,
_Out_ PUCHAR  Byte 
)

Definition at line 146 of file headless.c.

149{
150 return CpGetByte(&Port[PortId], Byte, TRUE, FALSE) == CP_GET_SUCCESS;
151}
USHORT NTAPI CpGetByte(_Inout_ PCPPORT Port, _Out_ PUCHAR Byte, _In_ BOOLEAN Wait, _In_ BOOLEAN Poll)
Definition: cport.c:82
#define CP_GET_SUCCESS
Definition: cportlib.h:17
unsigned char Byte
Definition: zlib.h:37

◆ WinLdrPortInitialize()

BOOLEAN WinLdrPortInitialize ( _In_ ULONG  BaudRate,
_In_ ULONG  PortNumber,
_In_ PUCHAR  PortAddress,
_In_ BOOLEAN  TerminalConnected,
_Out_ PULONG  PortId 
)

Definition at line 74 of file headless.c.

80{
81 /* Set the default baud rate */
82 if (BaudRate == 0)
83 BaudRate = DEFAULT_BAUD_RATE;
84
85 /* Check if the port or address is given */
86 if (PortNumber)
87 {
88 /* Pick correct address for port */
89 if (!PortAddress)
90 {
91 if (PortNumber < 1 || PortNumber > MAX_COM_PORTS)
93 PortAddress = UlongToPtr(BaseArray[PortNumber]);
94 }
95 }
96 else
97 {
98 /* Pick correct port for address */
99#if defined(SARCH_PC98)
100 static const ULONG TestPorts[] = {1, 2};
101#else
102 static const ULONG TestPorts[] = {2, 1};
103#endif
104 PortAddress = UlongToPtr(BaseArray[TestPorts[0]]);
105 if (CpDoesPortExist(PortAddress))
106 {
107 PortNumber = TestPorts[0];
108 }
109 else
110 {
111 PortAddress = UlongToPtr(BaseArray[TestPorts[1]]);
112 if (!CpDoesPortExist(PortAddress))
113 return FALSE;
114 PortNumber = TestPorts[1];
115 }
116 }
117
118 /* Not yet supported */
120
121 /* Check if port exists */
122 if (CpDoesPortExist(PortAddress))
123 {
124 /* Initialize port for the first time, or re-initialize if specified */
125 if (!!TerminalConnected == (Port[PortNumber - 1].Address != NULL))
126 {
127 /* Initialize the port and return it */
128 CpInitialize(&Port[PortNumber - 1], PortAddress, BaudRate);
129 *PortId = PortNumber - 1;
130 return TRUE;
131 }
132 }
133
134 return FALSE;
135}
NTSTATUS NTAPI CpInitialize(_Inout_ PCPPORT Port, _In_ PUCHAR Address, _In_ ULONG BaudRate)
Definition: cport.c:59
BOOLEAN NTAPI CpDoesPortExist(_In_ PUCHAR Address)
Definition: cport.c:33
#define NULL
Definition: types.h:112
#define ASSERT(a)
Definition: mode.c:44
UCHAR IsMMIODevice
Definition: arc.h:443
#define DEFAULT_BAUD_RATE
Definition: uartinfo.h:24

Referenced by WinLdrInitializeHeadlessPort().

◆ WinLdrPortPollOnly()

BOOLEAN WinLdrPortPollOnly ( _In_ ULONG  PortId)

Definition at line 154 of file headless.c.

156{
157 UCHAR Dummy;
158
159 return CpGetByte(&Port[PortId], &Dummy, FALSE, TRUE) == CP_GET_SUCCESS;
160}
unsigned char UCHAR
Definition: xmlstorage.h:181

◆ WinLdrPortPutByte()

VOID WinLdrPortPutByte ( _In_ ULONG  PortId,
_In_ UCHAR  Byte 
)

Definition at line 138 of file headless.c.

141{
142 CpPutByte(&Port[PortId], Byte);
143}
VOID NTAPI CpPutByte(_Inout_ PCPPORT Port, _In_ UCHAR Byte)
Definition: cport.c:93

Referenced by WinLdrInitializeHeadlessPort().

◆ WinLdrSetupEms()

VOID WinLdrSetupEms ( _In_ PCSTR  BootOptions)

Definition at line 232 of file headless.c.

234{
235 PCSTR Option;
236
237 /* Start fresh */
240
241 /* Use a direction port if one was given, or use ACPI to detect one instead */
242 Option = NtLdrGetOption(BootOptions, "redirect=");
243 if (Option)
244 {
245 Option += 9;
246 if (_strnicmp(Option, "com", 3) == 0)
247 {
248 Option += 3;
251 }
252 else if (_strnicmp(Option, "usebiossettings", 15) == 0)
253 {
254 // FIXME: TODO!
255 UiDrawStatusText("ACPI SRT/SPCR Table Not Supported...");
256 return;
257 }
258 else
259 {
260#ifdef _WIN64
261#define strtoulptr strtoull
262#else
263#define strtoulptr strtoul
264#endif
268 }
269 }
270
271 /* Use a direction baudrate if one was given */
272 Option = NtLdrGetOption(BootOptions, "redirectbaudrate=");
273 if (Option)
274 {
275 Option += 17;
276 // LoaderRedirectionInformation.BaudRate = atoi(Option);
277 if (strncmp(Option, "115200", 6) == 0)
278 {
280 }
281 else if (strncmp(Option, "57600", 5) == 0)
282 {
284 }
285 else if (strncmp(Option, "19200", 5) == 0)
286 {
288 }
289 else
290 {
292 }
293 }
294
295 /* Enable headless support if parameters were found */
297 {
299 {
301 }
302
304 }
305}
VOID UiDrawStatusText(PCSTR StatusText)
Definition: ui.c:286
#define _strnicmp(_String1, _String2, _MaxCount)
Definition: compat.h:23
_ACRTIMP int __cdecl atoi(const char *)
Definition: string.c:1715
_ACRTIMP int __cdecl strncmp(const char *, const char *, size_t)
Definition: string.c:3330
#define strtoulptr
VOID WinLdrInitializeHeadlessPort(VOID)
Definition: headless.c:171
PCSTR NtLdrGetOption(IN PCSTR Options, IN PCSTR OptionName)
Definition: ntldropts.c:128
USHORT PciDeviceId
Definition: arc.h:436
UCHAR TerminalType
Definition: arc.h:444
#define PCI_INVALID_VENDORID
Definition: iotypes.h:3603

Referenced by LoadAndBootWindowsCommon().

Variable Documentation

◆ LoaderRedirectionInformation

HEADLESS_LOADER_BLOCK LoaderRedirectionInformation

◆ Port

CPPORT Port[4]
Initial value:
=
{
{NULL, 0, TRUE},
{NULL, 0, TRUE},
{NULL, 0, TRUE},
{NULL, 0, TRUE}
}

Definition at line 38 of file headless.c.

Referenced by __inbyte(), __inbytestring(), __indword(), __indwordstring(), __inword(), __inwordstring(), __outbyte(), __outbytestring(), __outdword(), __outdwordstring(), __outword(), __outwordstring(), _inp(), _inpd(), _inpw(), _outp(), _outpd(), _outpw(), AddItem(), AddrBuildAddress(), AddrFindShared(), AddrGetAddress(), AddrSearchFirst(), AllocatePort(), CloneAddrInfo(), CmosReadData(), CmosWriteAddress(), CmosWriteData(), Cp16550ReadLsr(), CpGetByte(), CpInitialize(), CpPutByte(), CpReadLsr(), CpSetBaud(), DbgkForwardException(), DbgkpSendApiMessageLpc(), DeallocatePort(), DECLARE_INTERFACE_(), DetectSerialMouse(), DmaPageReadPort(), DmaPageWritePort(), DmaReadPort(), DmaWritePort(), DnsAddr_BuildFromIp4(), DnsAddr_BuildFromIp6(), CWebServiceLibCurl::DoRequest(), CWebServiceWinInet::DoRequest(), DumpInfo(), EHCI_PollController(), EHCI_RH_ChirpRootPort(), EHCI_RH_ClearFeaturePortConnectChange(), EHCI_RH_ClearFeaturePortEnable(), EHCI_RH_ClearFeaturePortEnableChange(), EHCI_RH_ClearFeaturePortOvercurrentChange(), EHCI_RH_ClearFeaturePortPower(), EHCI_RH_ClearFeaturePortResetChange(), EHCI_RH_ClearFeaturePortSuspend(), EHCI_RH_ClearFeaturePortSuspendChange(), EHCI_RH_FinishReset(), EHCI_RH_GetPortStatus(), EHCI_RH_PortResetComplete(), EHCI_RH_PortResumeComplete(), EHCI_RH_SetFeaturePortEnable(), EHCI_RH_SetFeaturePortPower(), EHCI_RH_SetFeaturePortReset(), EHCI_RH_SetFeaturePortSuspend(), EHCI_StartController(), EmulatorReadIo(), EmulatorWriteIo(), FAST486_OPCODE_HANDLER(), Fast486IoReadCallback(), Fast486IoWriteCallback(), GetDiskBySCSI(), GetPortName(), GetSerialMousePnpId(), HaliHandlePCIConfigSpaceAccess(), HalpReportResourceUsage(), i8042PacketWrite(), i8042SynchWritePort(), CMiniportWaveStreamCMI::Init(), InitializeSerialPort(), InstallSubdevice(), IopCompleteRequest(), IOReadB(), IOReadD(), IOReadStrB(), IOReadStrD(), IOReadStrW(), IOReadW(), IOWriteB(), IOWriteD(), IOWriteStrB(), IOWriteStrD(), IOWriteStrW(), IOWriteW(), IsaBusReadDataPortRegister(), IsaBusReadSerialIsolationRegister(), KdDebuggerInitialize0(), LlbHwGetUartBase(), LookupAddressForName(), LpcpClosePort(), LpcpCopyRequestData(), LpcpCreatePort(), LpcpDeletePort(), LpcpDestroyPortQueue(), LpcpFindDataInfoMessage(), LpcpFreeDataInfoMessage(), LpcpFreePortClientSecurity(), LpcpInitializePortQueue(), LpcpSaveDataInfoMessage(), LpcpSetPortToThread(), LpcpValidateClientPort(), LpcRequestPort(), LpcRequestWaitReplyPort(), NdisImmediateReadPortUchar(), NdisImmediateReadPortUlong(), NdisImmediateReadPortUshort(), NdisImmediateWritePortUchar(), NdisImmediateWritePortUlong(), NdisImmediateWritePortUshort(), NewAddrInfo(), NewPortDMus(), NewPortWaveCyclic(), NewPortWavePci(), NewPortWaveRT(), NtCompleteConnectPort(), NtImpersonateClientOfPort(), NtReplyPort(), NtReplyWaitReceivePortEx(), NtRequestPort(), NtRequestWaitReplyPort(), NtSecureConnectPort(), OHCI_RH_ClearFeaturePortConnectChange(), OHCI_RH_ClearFeaturePortEnable(), OHCI_RH_ClearFeaturePortEnableChange(), OHCI_RH_ClearFeaturePortOvercurrentChange(), OHCI_RH_ClearFeaturePortPower(), OHCI_RH_ClearFeaturePortResetChange(), OHCI_RH_ClearFeaturePortSuspend(), OHCI_RH_ClearFeaturePortSuspendChange(), OHCI_RH_GetPortStatus(), OHCI_RH_SetFeaturePortEnable(), OHCI_RH_SetFeaturePortPower(), OHCI_RH_SetFeaturePortReset(), OHCI_RH_SetFeaturePortSuspend(), PicReadCommand(), PicReadData(), PicWriteCommand(), PicWriteData(), PinPropertyHandler(), PitReadPort(), PitWritePort(), PortInB(), PortInsB(), PortInsW(), PortInW(), PortOutB(), PortOutsB(), PortOutsW(), PortOutW(), PpiReadPort(), PS2PortQueueRead(), PS2QueuePush(), PS2ReadControl(), PS2ReadData(), PS2SendCommand(), PS2WriteControl(), QueryDNS(), READ_PORT_BUFFER_UCHAR(), READ_PORT_BUFFER_ULONG(), READ_PORT_BUFFER_USHORT(), READ_PORT_UCHAR(), READ_PORT_ULONG(), READ_PORT_USHORT(), RegisterIoPort(), RtlIpv4AddressToStringExA(), RtlIpv4AddressToStringExW(), RtlIpv4StringToAddressExA(), RtlIpv4StringToAddressExW(), RtlIpv6AddressToStringExA(), RtlIpv6AddressToStringExW(), RtlIpv6StringToAddressExA(), RtlIpv6StringToAddressExW(), ScsiPortReadPortBufferUchar(), ScsiPortReadPortBufferUlong(), ScsiPortReadPortBufferUshort(), ScsiPortReadPortUchar(), ScsiPortReadPortUlong(), ScsiPortReadPortUshort(), ScsiPortWritePortBufferUchar(), ScsiPortWritePortBufferUlong(), ScsiPortWritePortBufferUshort(), ScsiPortWritePortUchar(), ScsiPortWritePortUlong(), ScsiPortWritePortUshort(), SetUpListener(), START_TEST(), StorPortReadPortBufferUchar(), StorPortReadPortBufferUlong(), StorPortReadPortBufferUshort(), StorPortReadPortUchar(), StorPortReadPortUlong(), StorPortReadPortUshort(), StorPortWritePortBufferUchar(), StorPortWritePortBufferUlong(), StorPortWritePortBufferUshort(), StorPortWritePortUchar(), StorPortWritePortUlong(), StorPortWritePortUshort(), TCPFreePort(), TdiOpenTransport(), TdiReceiveDatagram(), TdiSendDatagram(), TestWin2003ObjectTypes(), TryConnectPort(), TryCreatePort(), Uart16550GetByte(), Uart16550Initialize(), Uart16550PutByte(), Uart16550SetBaud(), UDPFreePort(), UhciPollController(), UhciRHClearFeaturePortConnectChange(), UhciRHClearFeaturePortEnable(), UhciRHClearFeaturePortEnableChange(), UhciRHClearFeaturePortOvercurrentChange(), UhciRHClearFeaturePortPower(), UhciRHClearFeaturePortResetChange(), UhciRHClearFeaturePortSuspend(), UhciRHClearFeaturePortSuspendChange(), UhciRHGetPortStatus(), UhciRHPortEnable(), UhciRHPortResetComplete(), UhciRHSetFeaturePortEnable(), UhciRHSetFeaturePortPower(), UhciRHSetFeaturePortReset(), UhciRHSetFeaturePortResetWorker(), UhciRHSetFeaturePortSuspend(), UhciStartController(), UnregisterIoPort(), USBD_CreateDeviceEx(), USBH_ChangeIndication(), USBH_ChangeIndicationAckChange(), USBH_ChangeIndicationAckChangeComplete(), USBH_ChangeIndicationQueryChange(), USBH_ChangeIndicationWorker(), USBH_CheckDeviceIDUnique(), USBH_CheckHubIdle(), USBH_CheckIdleAbort(), USBH_CreateDevice(), USBH_FdoCleanup(), USBH_FdoIdleNotificationCallback(), USBH_FdoPower(), USBH_FdoQueryBusRelations(), USBH_FdoSurpriseRemoveDevice(), USBH_FlushPortPwrList(), USBH_HubQueuePortIdleIrps(), USBH_HubQueuePortWakeIrps(), USBH_PdoRemoveDevice(), USBH_ProcessPortStateChange(), USBH_ResetDevice(), USBH_ResetPortWorker(), USBH_StartHubFdoDevice(), USBH_SyncClearPortStatus(), USBH_SyncDisablePort(), USBH_SyncGetPortStatus(), USBH_SyncPowerOnPort(), USBH_SyncPowerOnPorts(), USBH_SyncResetPort(), USBPORT_CreateDevice(), USBPORT_RH_SetFeatureUSB2PortPower(), USBPORT_RootHubClassCommand(), USBPORT_RootHubPowerAndChirpAllCcPorts(), USBPORT_RootHubSCE(), ValidatePort(), VgaInterpretCmdStream(), VgaReadPort(), VgaWritePort(), WaitForReady(), WinLdrEnableFifo(), WinLdrPortGetByte(), WinLdrPortInitialize(), WinLdrPortPollOnly(), WinLdrPortPutByte(), WRITE_GDC_CSRFORM(), WRITE_GDC_CSRW(), WRITE_GDC_PITCH(), WRITE_GDC_PRAM(), WRITE_GDC_SYNC(), WRITE_GDC_ZOOM(), WRITE_PORT_BUFFER_UCHAR(), WRITE_PORT_BUFFER_ULONG(), WRITE_PORT_BUFFER_USHORT(), WRITE_PORT_UCHAR(), WRITE_PORT_ULONG(), WRITE_PORT_USHORT(), WSAAsyncGetServByPort(), x86IoRead(), x86IoWrite(), and CMiniportWaveStreamCMI::~CMiniportWaveStreamCMI().

◆ WinLdrTerminalConnected

BOOLEAN WinLdrTerminalConnected

Definition at line 34 of file headless.c.

Referenced by WinLdrInitializeHeadlessPort(), and WinLdrInitializePhase1().

◆ WinLdrTerminalDelay

ULONG WinLdrTerminalDelay

Definition at line 36 of file headless.c.

Referenced by WinLdrInitializeHeadlessPort().

◆ WinLdrTerminalDeviceId

ULONG WinLdrTerminalDeviceId

Definition at line 35 of file headless.c.

Referenced by WinLdrInitializeHeadlessPort().