reactos/win32ss/user/ntuser
Oleg Dubinskiy 114bc2b96e
[NTGDI][NTUSER] Load DirectX graphics driver at system startup (#4551)
CORE-18221

Load the DirectX graphics kernel driver (dxg.sys) by win32k at WINSRV
initialization time, in NtUserInitialize(). Keep it always loaded in
memory, as on Windows, instead of loading it only by DirectX dlls.

This fixes the problem of acessing this driver: we need only to call
DxDdEnableDirectDraw() and do other stuff when DirectDraw/Direct3D is
required by anything. In other cases, it is called from win32k PDEV
functions when changing display mode (as in Windows). Since it's used
by other things too, it needs to be always loaded.

Otherwise, if it's not loaded, its APIs are not accessible when needed,
and execution fails.

For example, it fixes display mode change problem in VMWare, when a
new mode fails to be applied. Indeed, when it manages DirectDraw stuff,
it calls DXG routines, and therefore fails if dxg.sys isn't loaded
in memory at this moment.

- Implement InitializeGreCSRSS() initialization routine, that initializes
  supplemental NTGDI/GRE data once CSRSS and WINSRV are loaded:
  * Call DxDdStartupDxGraphics() inside it, which loads dxg.sys.
  * Additionally, move fonts and language ID initialization there, from
   win32k!DriverEntry. Confirmed by analysis on Windows.

- Call InitializeGreCSRSS() in NtUserInitialize() main initialization routine
  (called by WINSRV initialization).

Moved to NTGDI from previously NTUSER place:

Co-authored-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
2023-06-11 13:44:56 +02:00
..
misc [BOOTDATA][NTUSER] Add UserIsIMMEnabled and use it (#4882) 2022-11-15 17:10:06 +09:00
accelerator.c
accelerator.h
callback.c [NTUSER][USER32][IMM32] Initialize pKL->piiex by using ImmLoadLayout (#4645) 2022-09-05 08:34:00 +09:00
callback.h [NTUSER][USER32][IMM32] Initialize pKL->piiex by using ImmLoadLayout (#4645) 2022-09-05 08:34:00 +09:00
callproc.c
caret.c [NTUSER] Add 'Win:' comments to co_UserHideCaret and co_UserShowCaret 2023-02-14 10:57:25 +09:00
caret.h
class.c [WIN32K] Fix WindowExtra for some server-side classes 2023-05-25 18:56:02 +03:00
class.h [WIN32SS][USER32] Add Ghost codes (retrial of #1100) (#1112) 2018-12-11 12:30:59 +09:00
clipboard.c [WIN32SS] Trim EOL white-space 2020-12-19 17:51:37 +01:00
clipboard.h
console.c [FORMATTING] Remove trailing whitespace. Addendum to 34593d93. 2021-09-13 03:52:22 +02:00
csr.c [FORMATTING] Remove trailing whitespace. Addendum to 34593d93. 2021-09-13 03:52:22 +02:00
csr.h [FORMATTING] Remove trailing whitespace. Addendum to 34593d93. 2021-09-13 03:52:22 +02:00
cursoricon.c [REACTOS] Improve/Fix some "printf" formats (#555) 2018-05-30 14:18:23 +02:00
cursoricon.h
dce.h [REACTOS] Addendum to 5c7ce4475e - Fix MSVC 2015 build 2021-05-12 11:04:29 +02:00
dde.c
defwnd.c [NTUSER] Fix BSOD 0x1E nullptr deref CORE-18899 (#5212) 2023-04-02 23:27:42 +09:00
desktop.c [WIN32K] Add some NULL checks for THREADINFO::rpdesk 2023-01-04 10:32:28 +01:00
desktop.h [WIN32K:NTUSER] Implement security infrastructure for NTUSER component 2022-05-06 10:09:48 +02:00
display.c [WIN32SS:USER] Do not write error message at end of enumeration in UserEnumDisplayDevices() 2022-06-08 07:58:12 +02:00
display.h [WIN32SS:NTUSER] Extract InitVideo() prototype and gbBaseVideo variable to header 2022-11-15 23:15:26 +01:00
draw.c [NTUSER][USER32] Classic Theme: disabled "checked" checkboxes should be grey (#4874) 2022-11-14 00:01:29 +01:00
event.c [NTUSER] Fix BSOD 0x1E nullptr deref CORE-18899 (#5212) 2023-04-02 23:27:42 +09:00
focus.c [NTUSER] Fix SetActiveWindow return value 2022-12-04 08:58:34 +09:00
focus.h [NTUSER] Implement HSHELL_RUDEAPPACTIVATE notification (#4147) 2021-12-08 18:26:22 +09:00
ghost.c [WIN32SS:USER] Some minimal work and fixes concerning message queues timeouts. 2019-12-29 16:14:15 +01:00
ghost.h [NTUSER] Implement creating the system threads 2018-12-19 16:13:18 +02:00
guicheck.c [FORMATTING] Remove trailing whitespace. Addendum to 34593d93. 2021-09-13 03:52:22 +02:00
guicheck.h
hook.c [NTUSER] Fix BSOD 0x1E nullptr deref CORE-18899 (#5212) 2023-04-02 23:27:42 +09:00
hook.h [WIN32K] Fix 64 bit issues (#420) 2018-03-18 15:53:52 +01:00
hotkey.c [NTUSER] Add 'Win:' comments around IntDefWindowProc 2022-11-10 15:59:52 +09:00
hotkey.h [WIN32SS:NTUSER] Implement "Window Snap" feature (#1226) 2019-01-15 14:36:41 +01:00
ime.c [IMM32][NTUSER][SDK] Add ImmCallImeConsoleIME (#5271) 2023-05-10 14:04:01 +09:00
input.c [REACTOS] Add '\n' to debug logs 2022-05-04 03:28:38 +03:00
input.h [NTUSER] Implement NtUserSetImeHotKey (#4350) 2022-02-09 11:27:44 +09:00
kbdlayout.c [NTUSER] Remember old KL for Chinese IMEs (#5266) 2023-05-05 17:00:05 +09:00
keyboard.c [WIN32K:NTUSER] Fix parameter check in NtUserGetAsyncKeyState. CORE-18124 2022-10-30 10:46:33 -04:00
layered.c
main.c [NTGDI][NTUSER] Load DirectX graphics driver at system startup (#4551) 2023-06-11 13:44:56 +02:00
menu.c [NTUSER][USER32] Improve DrawFrameControl:DFC_MENU and DFC_BUTTON (#4783) 2022-10-17 13:28:56 +09:00
menu.h
message.c [NTUSER] Demote ERR to TRACE, also some minor corrections (#3132) 2020-09-05 17:59:10 +03:00
metric.c [BOOTDATA][NTUSER] Add UserIsIMMEnabled and use it (#4882) 2022-11-15 17:10:06 +09:00
misc.c [NTUSER] Implement THREADSTATE_CHECKCONIME (#5272) 2023-05-10 20:24:21 +09:00
mmcopy.h
monitor.c
monitor.h
mouse.c [NTUSER] Support MK_SHIFT/MK_CONTROL of mouse messages (#2038) 2019-11-16 09:49:49 +09:00
msgqueue.c [NTUSER] Improve MsqPostMessage (#5225) 2023-04-24 20:11:46 +02:00
msgqueue.h [REACTOS] Addendum to 5c7ce4475e - Fix MSVC 2015 build 2021-05-12 11:04:29 +02:00
nonclient.c [NTUSER] Optimize Window Snap Disabling (#5061) 2023-02-16 19:33:37 +01:00
ntstubs.c [WIN32K][WIN32U] Fix system call ids (#5287) 2023-05-28 16:19:50 +03:00
ntuser.c [NTGDI][NTUSER] Load DirectX graphics driver at system startup (#4551) 2023-06-11 13:44:56 +02:00
ntuser.h [IMM32] s/Imm32IsCiceroMode/IS_CICERO_MODE/ 2022-09-08 09:40:50 +09:00
object.c [WIN32SS] Fix CF_DIB format not being saved to clipboard on Print Screen key (#3265) 2022-05-05 17:54:15 +02:00
object.h [NTUSER] Do assignment lock pti->spDefaultImc (#4456) 2022-04-18 08:23:18 +09:00
painting.c [REACTOS] Add '\n' to debug logs 2022-05-04 03:28:38 +03:00
painting.h [NtGDI] Update Region code 2019-04-17 14:43:24 -05:00
prop.c [NTUSER] Fix stack memory disclosure in NtUserBuildPropList (#3023) 2020-08-08 14:05:22 +09:00
prop.h
scroll.h
scrollbar.c [NTUSER] Scrollbar.c pure whitespace fixes 2023-03-12 10:34:50 +01:00
scrollex.c [WIN32SS][NTUSER] Fix ScrollWindowEx SW_SCROLLCHILDREN (#2327) 2020-02-11 20:59:14 +09:00
security.c [WIN32K:NTUSER] Assign a security descriptor when parsing the desktop object 2022-05-08 20:16:15 +02:00
security.h [WIN32K:NTUSER] Assign a security descriptor when parsing the desktop object 2022-05-08 20:16:15 +02:00
session.c
shutdown.c [WIN32K:NTUSER] Add an extra optional "Process" parameter to the GetProcessLuid() function to be used alternatively in place of "Thread" to retrieve the LUID. 2018-08-19 22:18:30 +02:00
shutdown.h
simplecall.c [NTUSER] Implement IntCheckImeShowStatusInThread 2022-11-17 10:27:12 +09:00
sysparams.c [NTUSER] Allow Window Snap to be disabled (#5014) 2023-02-01 18:13:32 +09:00
sysparams.h [WIN32K][DESK.CPL]: Add fit and fill background placement options (#28) 2017-10-13 21:44:02 +02:00
tags.h [WIN32SS] Introduce the MDEVOBJ structure 2022-04-15 23:09:16 +02:00
timer.c [WIN32K:NTUSER] Allocate & free timers under global user lock 2021-08-03 23:13:19 +02:00
timer.h [REACTOS] Addendum to 5c7ce4475e - Fix MSVC 2015 build 2021-05-12 11:04:29 +02:00
useratom.c
useratom.h
userfuncs.h [BOOTDATA][NTUSER] Add UserIsIMMEnabled and use it (#4882) 2022-11-15 17:10:06 +09:00
usrheap.c [WIN32K:NTUSER] In debug builds, enable free & tail checking when creating heaps 2021-08-03 23:13:19 +02:00
usrheap.h [WIN32K:NTUSER] Assert global user lock is held exclusively when using global & desktop heaps 2021-08-03 23:13:19 +02:00
vis.c
vis.h
win32.h [NTGDI][NTUSER][INCLUDE] Add 'See also:' comments for structures (#4872) 2022-11-12 20:27:50 +09:00
win32kdebug.h [WIN32K:NTUSER] Implement security infrastructure for NTUSER component 2022-05-06 10:09:48 +02:00
windc.c [REACTOS] "http://www.reactos" -> "https://reactos" (#5043) 2023-02-06 17:01:52 +03:00
window.c [USER32] Fix SetWindowWord/Long 2023-05-25 18:56:02 +03:00
window.h [NTUSER] Allow Window Snap to be disabled (#5014) 2023-02-01 18:13:32 +09:00
winpos.c [NTUSER] Send WM_IME_SYSTEM:IMS_UPDATEIMEUI (#5075) 2023-02-22 08:35:55 +09:00
winpos.h
winsta.c [NTUSER] KLF_UNLOAD flag of NtUserGetKeyboardLayoutList (#4592) 2022-08-03 12:45:10 +09:00
winsta.h [NTUSER] KLF_UNLOAD flag of NtUserGetKeyboardLayoutList (#4592) 2022-08-03 12:45:10 +09:00