Loading user information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading user information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

ntdebugging blog talk about on desktop heap

14 minutes, 37 seconds


Right click “Save as…”

Hi, This is Jeff Dailey, I’m an Escalation Engineer (EE) from the Microsoft GES (Global Escalation Services) Platforms team.   This is the first in an ongoing series of videos based on our advanced debugging and troubleshooting blog hosted on http://blogs.msdn.com/ntdebugging. In this video Matthew Justice (GES EE) , David Butler (GES EE) and I will discuss desktop heap architecture , and the types of things that go wrong and how to address them.   Matthew is the author of “Desktop Heap Overview” on http://blogs.msdn.com/ntdebugging/archive/2007/01/04/desktop-heap-overview.aspx 

The video is about 15 minutes long , as a side note this was recorded on our new Microsoft roundtable camera.  http://www.microsoft.com/uc/products/roundtable.mspx


Thank you and enjoy


Jeff Dailey

Escalation Engineer (Platforms core team)

Follow the discussion

  • Oops, something didn't work.

    Getting subscription
    Subscribe to this conversation
  • 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: http://blogs.msdn.com/ntdebugging/archive/2007/01/04/desktop-heap-overview.aspx.

  • RichardRudekRichardRudek So what do you expect for nothin'... :P
    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.

Remove this comment

Remove this thread


Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.