ntdebugging blog talk about on desktop heap

Play ntdebugging blog talk about on desktop heap

The Discussion

  • User profile image

    Hello - Matthew here; I’m the guy doing most of the talking on the video above.  I want to make a couple of clarifications / corrections:

    At 3:48 in the video, I said that every window station has multiple desktops associated with it.  More accurately, a window station may have multiple window station associated with it.  It also may only have one desktop. 

    At 13:50, I said that user32.dll is the only DLL that creates objects that come out of session view space.  That should have been “user32.dll is the only DLL that creates objects that come out of desktop heap.”  There  is another DLL that uses session view space: gdi32.dll.  Of course, both of these user mode DLLs are indirect users of session view space.  The kernel mode portion of both USER and GDI is implemented in win32k.sys, and it is the component that actually makes the session view allocations.

    For more technical details check out my blog post: https://blogs.msdn.com/ntdebugging/archive/2007/01/04/desktop-heap-overview.aspx.

  • User profile image
    This is probably going off topic here, but as I don't seem to be able to get any useful response from other sources, so what the heck...

    Basically, I'm trying to avoid having to use two separate computer systems in an embedded design. The basic problem is that I need to drive a 3840x2400 pixel display. BUT, not have this high-res display actually attached to the user's "normal" Desktop. In other words, have the high-res display connected as a peripheral display. Nothing, other than my program, is allowed to draw or touch anything (dialog boxes,  blanking, etc) on this display.

    Now the problem is that nVidia, the display card manufacturer (Quadro FX), does not support operating the display without it being connected to a "Windows Desktop". My attempts to gain access to their driver people have (effectively) been ignored. Worse still, I don't have the time, and client doesn't have the resources to fund any type of driver development.

    So I've been trying to think of ways of working around this rather sticky problem - thinking about wether it was possible to create a second "Windows Desktop". Then I remembered a product that used to ship here in Australia, that turned a Windows NT4 system into an old-school Mutli-User system [1].

    Is it possible, under ANY current version of Windows that allows you to have two (or more) real users being driven entirely by one PC with Multi-Display cards, etc - ie an "old school" Multi-User system ?

    The basic idea here being wether I could setup a second user Session to run in Kiosk-mode, but rendering to the high-res display. The "normal desktop" session 0 (1 for Vista), using a lower-res display, such as a PCI SVGA display eg 1024x768.

    Any thoughts ?  ... go away ?... Wink

    [1]: There used to be a product here in Australia, which I believe was bought-out and then released as Citrix MetaFrame (WinFrame ?). That used a "Hacked" NT 3.5 / NT 4 Kernel - apparently, they had purchased a Kernel source-code license. But when it came to Windows NT4/2000, Microsoft tied them up and essentially made them enter into a cross-license arrangement, and thus was born Terminal Services.

    Anyway, the point being, that there were PCI cards, typically 4 Display with matching Keyboard and Mouse ports, that used a high denity connector, which you then broke out into separate display/keyboard/mouse "terminals" - there was nothing else but the breakout box on the user's desk (no computer). From what I can tell, this is no longer supported in either MetaFrame or Terminal Services, at least out of the box.

Add Your 2 Cents