47#define DF_TME_HOVER 0x00000400
48#define DF_TME_LEAVE 0x00000800
49#define DF_HOTTRACK 0x00004000
50#define DF_DESTROYED 0x00008000
51#define DF_DESKWNDDESTROYED 0x00010000
52#define DF_DYING 0x00020000
55#define DT_GWL_PROCESSID 0
56#define DT_GWL_THREADID 4
145 OUT HWINSTA* phWinSta,
146 OUT HDESK* phDesktop);
158 OUT HDESK* phDesktop,
172#define IntIsActiveDesktop(Desktop) \
173 ((Desktop)->rpwinstaParent->ActiveDesktop == (Desktop))
194#define UserIsDesktopWindow(pWnd) \
195 ((pWnd) && ((pWnd)->fnid == FNID_DESKTOP))
197#define UserIsMessageWindow(pWnd) \
198 ((pWnd) && ((pWnd)->fnid == FNID_MESSAGEWND))
247 if (PrevSize ==
Bytes)
255 if (PrevSize <
Bytes)
284 pheapDesktop = pti->
rpdesk->pheapDesktop;
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
_Inout_ PFCB _Inout_ PUNICODE_STRING RemainingName
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
static const WCHAR Message[]
static PVOID Mapping[EMS_PHYSICAL_PAGES]
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
NTSYSAPI PVOID WINAPI RtlReAllocateHeap(HANDLE, ULONG, PVOID, SIZE_T)
NTSYSAPI SIZE_T NTAPI RtlSizeHeap(_In_ PVOID HeapHandle, _In_ ULONG Flags, _In_ PVOID MemoryPointer)
#define HEAP_NO_SERIALIZE
PVOID NTAPI PsGetCurrentProcessWin32Process(VOID)
PVOID NTAPI PsGetCurrentThreadWin32Thread(VOID)
BOOL FASTCALL UserIsEnteredExclusive(VOID)
PULONG MinorVersion OPTIONAL
struct _USER_MESSAGE_QUEUE * ActiveMessageQueue
struct _WINSTATION_OBJECT * rpwinstaParent
LIST_ENTRY ShellHookWindows
W32HEAP_USER_MAPPING HeapMappings
struct _W32HEAP_USER_MAPPING * Next
#define RtlCopyMemory(Destination, Source, Length)
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
_In_ HFONT _Out_ PUINT Height
struct _WIN32HEAP * PWIN32HEAP
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
PDESKTOP FASTCALL IntGetActiveDesktop(VOID)
PTHREADINFO gptiDesktopThread
struct _DESKTOP * PDESKTOP
NTSTATUS FASTCALL IntCreateDesktop(OUT HDESK *phDesktop, IN POBJECT_ATTRIBUTES ObjectAttributes, IN KPROCESSOR_MODE AccessMode, IN PUNICODE_STRING lpszDesktopDevice OPTIONAL, IN LPDEVMODEW lpdmw OPTIONAL, IN DWORD dwFlags, IN ACCESS_MASK dwDesiredAccess)
PWND FASTCALL IntGetThreadDesktopWindow(PTHREADINFO)
HWND FASTCALL IntGetCurrentThreadDesktopWindow(VOID)
NTSTATUS NTAPI IntDesktopOkToClose(_In_ PVOID Parameters)
NTSTATUS NTAPI InitDesktopImpl(VOID)
VOID APIENTRY UserRedrawDesktop(VOID)
PKEVENT gpDesktopThreadStartedEvent
static __inline ULONG_PTR DesktopHeapGetUserDelta(VOID)
PWND FASTCALL UserGetDesktopWindow(VOID)
BOOL IntDeRegisterShellHookWindow(HWND hWnd)
HWND FASTCALL IntGetMessageWindow(VOID)
NTSTATUS FASTCALL IntHideDesktop(PDESKTOP Desktop)
struct _SHELL_HOOK_WINDOW SHELL_HOOK_WINDOW
VOID NTAPI DesktopThreadMain(VOID)
HDESK UserOpenInputDesktop(DWORD dwFlags, BOOL fInherit, ACCESS_MASK dwDesiredAccess)
VOID FASTCALL IntSetFocusMessageQueue(PUSER_MESSAGE_QUEUE NewQueue)
HWND FASTCALL IntGetDesktopWindow(VOID)
NTSTATUS FASTCALL co_IntShowDesktop(PDESKTOP Desktop, ULONG Width, ULONG Height, BOOL Redraw)
PTHREADINFO gptiForeground
NTSTATUS NTAPI IntDesktopObjectClose(_In_ PVOID Parameters)
BOOL IntRegisterShellHookWindow(HWND hWnd)
NTSTATUS FASTCALL IntValidateDesktopHandle(HDESK Desktop, KPROCESSOR_MODE AccessMode, ACCESS_MASK DesiredAccess, PDESKTOP *Object)
PUSER_MESSAGE_QUEUE FASTCALL IntGetFocusMessageQueue(VOID)
struct _SHELL_HOOK_WINDOW * PSHELL_HOOK_WINDOW
HDC FASTCALL UserGetDesktopDC(ULONG, BOOL, BOOL)
NTSTATUS APIENTRY IntDesktopObjectParse(IN PVOID ParseObject, IN PVOID ObjectType, IN OUT PACCESS_STATE AccessState, IN KPROCESSOR_MODE AccessMode, IN ULONG Attributes, IN OUT PUNICODE_STRING CompleteName, IN OUT PUNICODE_STRING RemainingName, IN OUT PVOID Context OPTIONAL, IN PSECURITY_QUALITY_OF_SERVICE SecurityQos OPTIONAL, OUT PVOID *Object)
VOID co_IntShellHookNotify(WPARAM Message, WPARAM wParam, LPARAM lParam)
static __inline PVOID DesktopHeapAlloc(IN PDESKTOP Desktop, IN SIZE_T Bytes)
NTSTATUS FASTCALL IntResolveDesktop(IN PEPROCESS Process, IN PUNICODE_STRING DesktopPath, IN BOOL bInherit, OUT HWINSTA *phWinSta, OUT HDESK *phDesktop)
#define UserIsMessageWindow(pWnd)
static __inline BOOL DesktopHeapFree(IN PDESKTOP Desktop, IN PVOID lpMem)
PWND FASTCALL co_GetDesktopWindow(PWND)
static __inline PVOID DesktopHeapReAlloc(IN PDESKTOP Desktop, IN PVOID lpMem, IN SIZE_T Bytes)
BOOL FASTCALL UserMessageWindowProc(PWND pwnd, UINT Msg, WPARAM wParam, LPARAM lParam, LRESULT *lResult)
NTSTATUS NTAPI IntDesktopObjectOpen(_In_ PVOID Parameters)
BOOL FASTCALL IntPaintDesktop(HDC)
NTSTATUS NTAPI IntDesktopObjectDelete(_In_ PVOID Parameters)
#define UserIsDesktopWindow(pWnd)
PDESKTOP gpdeskInputDesktop
BOOL IntSetThreadDesktop(IN HDESK hDesktop, IN BOOL FreeOnFailure)
HDC FASTCALL IntGetScreenDC(VOID)
PWND FASTCALL UserGetMessageWindow(VOID)
static __inline PVOID DesktopHeapAddressToUser(PVOID lpMem)
BOOL FASTCALL DesktopWindowProc(PWND, UINT, WPARAM, LPARAM, LRESULT *)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
_In_ PEPROCESS _In_ KPROCESSOR_MODE AccessMode
_In_opt_ PVOID _In_opt_ PUNICODE_STRING _In_ PSECURITY_DESCRIPTOR _In_ PACCESS_STATE AccessState