#include "precomp.h"
Go to the source code of this file.
◆ ResetDisplay()
Definition at line 478 of file bootvid.c.
480{
481
483 {
484
486 }
487
488
490
491
494}
VOID NTAPI VidSolidColorFill(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Right, _In_ ULONG Bottom, _In_ UCHAR Color)
const USHORT VGA_640x480[]
const USHORT AT_Initialization[]
#define InitializePalette()
static BOOLEAN VgaInterpretCmdStream(_In_ const USHORT *CmdStream)
◆ VgaInterpretCmdStream()
Definition at line 14 of file bootvid.c.
16{
24
25
26 if (!CmdStream)
28
29
30 while (*CmdStream !=
EOD)
31 {
32
36
37
39 {
40
42 {
43
45 {
46
49 }
50 else
51 {
52
55 }
56 }
58 {
59
61 {
62
65
66
68
69
71 }
72 else
73 {
74
77
78
80 {
81
84 }
85 }
86 }
88 {
89
91
92
93 ShortValue = *CmdStream++;
95 }
96 else
97 {
98
100
101
104 }
105 }
107 {
108
110 {
112 {
113
115 Count = *CmdStream++;
117
118
120 {
121
124 }
125 break;
126 }
127
129 {
130
132 Count = *CmdStream++;
134
135
137 {
138
140
141
144 }
145 break;
146 }
147
149 {
150
152
153
155 Value &= *CmdStream++;
156 Value ^= *CmdStream++;
157
158
160 break;
161 }
162
163 default:
164
166 }
167 }
168 else if (Major !=
NCMD)
169 {
170
172 }
173 }
174
175
177}
#define WRITE_PORT_BUFFER_USHORT(port, buffer, count)
ULONG_PTR VgaRegisterBase
#define __outpw(Port, Value)
#define __outpb(Port, Value)
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Referenced by ResetDisplay(), and VidInitialize().
◆ VgaIsPresent()
Definition at line 180 of file bootvid.c.
181{
182 UCHAR OrgGCAddr, OrgReadMap, OrgBitMask;
183 UCHAR OrgSCAddr, OrgMemMode;
185
186#if (NTDDI_VERSION >= NTDDI_WIN7)
187
188
191 {
193 }
194#endif
195
196
198
199
200
201
202
203
204
206
207
208
209
210
213
214
215
216
219
220
222 {
223
224
225
226
229 }
230
231
233
234
236 {
237
238
239
240
244 }
245
246
248
249
250
251
252
253 for (
i = 0xBB;
i;
i >>= 1)
254 {
255
257
258
260 {
261
262
263
264
269 }
270 }
271
272
273
274
275
276
278
279
281 {
282
283
284
285
286
287
292 }
293
294
295
296
297
302
303
304
305
306
307
308
309
310
313
314
316 {
317
318
319
320
322 }
323
324
326
327
328
329
330
331
332
334
335
338
339
341 {
342
343
344
345
347
348
350
351
353 }
354
355
356
357
358
359
361
362
364
365
367
368
370}
#define START_SYNC_RESET_VALUE
#define GRAPH_ADDRESS_PORT
#define READ_MAP_TEST_SETTING
#define END_SYNC_RESET_VALUE
#define MEMORY_MODE_TEXT_DEFAULT
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
#define HalQueryIoPortAccessSupported
#define HALPRIVATEDISPATCH
Referenced by VidInitialize().
◆ VidInitialize()
Definition at line 376 of file bootvid.c.
378{
385
386
388
389
391 {
392
400
401
403 {
404
406 }
407 else
408 {
409
411 }
412
413
416 {
417
419 VgaAddress.HighPart = 0;
427 }
428 else
429 {
430
432 }
433
434
435 }
436
437
439 {
440
444 }
445 else
446 {
447
449 }
450
451
453
454
455 if (SetMode)
456 {
457
460
461
463 {
464
466 }
467 else
468 {
469
471 }
472 }
473
475}
static BOOLEAN VgaIsPresent(VOID)
VOID NTAPI MmUnmapIoSpace(IN PVOID BaseAddress, IN SIZE_T NumberOfBytes)
PVOID NTAPI MmMapIoSpace(IN PHYSICAL_ADDRESS PhysicalAddress, IN SIZE_T NumberOfBytes, IN MEMORY_CACHING_TYPE CacheType)
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_ PVOID Context
#define HalFindBusAddressTranslation
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG _Out_ PPHYSICAL_ADDRESS TranslatedAddress
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG AddressSpace