ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

win32.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 /* W32PROCESS flags */
00004 #define W32PF_CONSOLEAPPLICATION      0x00000001
00005 #define W32PF_FORCEOFFFEEDBACK        0x00000002
00006 #define W32PF_STARTGLASS              0x00000004
00007 #define W32PF_WOW                     0x00000008
00008 #define W32PF_READSCREENACCESSGRANTED 0x00000010
00009 #define W32PF_INITIALIZED             0x00000020
00010 #define W32PF_APPSTARTING             0x00000040
00011 #define W32PF_WOW64                   0x00000080
00012 #define W32PF_ALLOWFOREGROUNDACTIVATE 0x00000100
00013 #define W32PF_OWNDCCLEANUP            0x00000200
00014 #define W32PF_SHOWSTARTGLASSCALLED    0x00000400
00015 #define W32PF_FORCEBACKGROUNDPRIORITY 0x00000800
00016 #define W32PF_TERMINATED              0x00001000
00017 #define W32PF_CLASSESREGISTERED       0x00002000
00018 #define W32PF_THREADCONNECTED         0x00004000
00019 #define W32PF_PROCESSCONNECTED        0x00008000
00020 #define W32PF_SETFOREGROUNDALLOWED    0x00008000
00021 #define W32PF_WAKEWOWEXEC             0x00010000
00022 #define W32PF_WAITFORINPUTIDLE        0x00020000
00023 #define W32PF_IOWINSTA                0x00040000
00024 #define W32PF_CONSOLEFOREGROUND       0x00080000
00025 #define W32PF_OLELOADED               0x00100000
00026 #define W32PF_SCREENSAVER             0x00200000
00027 #define W32PF_IDLESCREENSAVER         0x00400000
00028 #define W32PF_ICONTITLEREGISTERED     0x10000000
00029 #define W32PF_DPIAWARE                0x20000000
00030 // ReactOS
00031 #define W32PF_NOWINDOWGHOSTING       (0x01000000)
00032 #define W32PF_MANUALGUICHECK         (0x02000000)
00033 #define W32PF_CREATEDWINORDC         (0x04000000)
00034 #define W32PF_APIHOOKLOADED          (0x08000000)
00035 
00036 extern BOOL ClientPfnInit;
00037 extern HINSTANCE hModClient;
00038 extern HANDLE hModuleWin;    // This Win32k Instance.
00039 extern PCLS SystemClassList;
00040 extern BOOL RegisteredSysClasses;
00041 
00042 typedef struct _WIN32HEAP WIN32HEAP, *PWIN32HEAP;
00043 
00044 #include <pshpack1.h>
00045 // FIXME: Move to ntuser.h
00046 typedef struct _TL
00047 {
00048     struct _TL* next;
00049     PVOID pobj;
00050     PVOID pfnFree;
00051 } TL, *PTL;
00052 
00053 typedef struct _W32THREAD
00054 {
00055     PETHREAD pEThread;
00056     ULONG RefCount;
00057     PTL ptlW32;
00058     PVOID pgdiDcattr;
00059     PVOID pgdiBrushAttr;
00060     PVOID pUMPDObjs;
00061     PVOID pUMPDHeap;
00062     DWORD dwEngAcquireCount;
00063     PVOID pSemTable;
00064     PVOID pUMPDObj;
00065 } W32THREAD, *PW32THREAD;
00066 
00067 typedef struct _THREADINFO
00068 {
00069     W32THREAD;
00070     PTL                 ptl;
00071     PPROCESSINFO        ppi;
00072     struct _USER_MESSAGE_QUEUE* MessageQueue;
00073     struct tagKL*       KeyboardLayout;
00074     PCLIENTTHREADINFO   pcti;
00075     struct _DESKTOP*    rpdesk;
00076     PDESKTOPINFO        pDeskInfo;
00077     PCLIENTINFO         pClientInfo;
00078     FLONG               TIF_flags;
00079     PUNICODE_STRING     pstrAppName;
00080     struct _USER_SENT_MESSAGE *pusmCurrent;
00081     LONG                timeLast;
00082     ULONG_PTR           idLast;
00083     INT                 exitCode;
00084     HDESK               hdesk;
00085     UINT                cPaintsReady; /* Count of paints pending. */
00086     UINT                cTimersReady; /* Count of timers pending. */
00087     DWORD               dwExpWinVer;
00088     DWORD               dwCompatFlags;
00089     DWORD               dwCompatFlags2;
00090     struct _USER_MESSAGE_QUEUE* pqAttach;
00091     PTHREADINFO         ptiSibling;
00092     ULONG               fsHooks;
00093     PHOOK               sphkCurrent;
00094     LPARAM              lParamHkCurrent;
00095     WPARAM              wParamHkCurrent;
00096     struct tagSBTRACK*  pSBTrack;
00097     HANDLE              hEventQueueClient;
00098     PKEVENT             pEventQueueServer;
00099     LIST_ENTRY          PtiLink;
00100     POINT               ptLast;
00101 
00102     LIST_ENTRY          aphkStart[NB_HOOKS];
00103     CLIENTTHREADINFO    cti;  // Used only when no Desktop or pcti NULL.
00104 
00105     /* ReactOS */
00106     LIST_ENTRY WindowListHead;
00107     LIST_ENTRY W32CallbackListHead;
00108     SINGLE_LIST_ENTRY  ReferencesList;
00109     ULONG cExclusiveLocks;
00110 #if DBG
00111     USHORT acExclusiveLockCount[GDIObjTypeTotal + 1];
00112 #endif
00113 
00114 } THREADINFO;
00115 
00116 #include <poppack.h>
00117 
00118 typedef struct _W32HEAP_USER_MAPPING
00119 {
00120     struct _W32HEAP_USER_MAPPING *Next;
00121     PVOID KernelMapping;
00122     PVOID UserMapping;
00123     ULONG_PTR Limit;
00124     ULONG Count;
00125 } W32HEAP_USER_MAPPING, *PW32HEAP_USER_MAPPING;
00126 
00127 
00128 /*
00129  Information from STARTUPINFOW, psdk/winbase.h.
00130  Set from PsGetCurrentProcess()->Peb->ProcessParameters.
00131 */
00132 typedef struct tagUSERSTARTUPINFO
00133 {
00134     ULONG cb;
00135     DWORD dwX;        // STARTF_USEPOSITION StartupInfo->dwX/Y
00136     DWORD dwY;
00137     DWORD dwXSize;    // STARTF_USESIZE StartupInfo->dwX/YSize
00138     DWORD dwYSize;
00139     DWORD dwFlags;    // STARTF_ StartupInfo->dwFlags
00140     WORD wShowWindow; // StartupInfo->wShowWindow
00141     USHORT cbReserved2;
00142 } USERSTARTUPINFO, *PUSERSTARTUPINFO;
00143 
00144 typedef struct _W32PROCESS
00145 {
00146   PEPROCESS     peProcess;
00147   DWORD         RefCount;
00148   ULONG         W32PF_flags;
00149   PKEVENT       InputIdleEvent;
00150   DWORD         StartCursorHideTime;
00151   struct _W32PROCESS * NextStart;
00152   PVOID         pDCAttrList;
00153   PVOID         pBrushAttrList;
00154   DWORD         W32Pid;
00155   LONG          GDIHandleCount;
00156   LONG          UserHandleCount;
00157   PEX_PUSH_LOCK GDIPushLock;  /* Locking Process during access to structure. */
00158   RTL_AVL_TABLE GDIEngUserMemAllocTable;  /* Process AVL Table. */
00159   LIST_ENTRY    GDIDcAttrFreeList;
00160   LIST_ENTRY    GDIBrushAttrFreeList;
00161 } W32PROCESS, *PW32PROCESS;
00162 
00163 #define CLIBS 32
00164 
00165 typedef struct _PROCESSINFO
00166 {
00167   W32PROCESS;
00168   PTHREADINFO ptiList;
00169   PTHREADINFO ptiMainThread;
00170   struct _DESKTOP* rpdeskStartup;
00171   PCLS pclsPrivateList;
00172   PCLS pclsPublicList;
00173   INT cThreads;
00174   HDESK hdeskStartup;
00175   DWORD dwhmodLibLoadedMask;
00176   HANDLE ahmodLibLoaded[CLIBS];
00177   struct _WINSTATION_OBJECT *prpwinsta;
00178   HWINSTA hwinsta;
00179   ACCESS_MASK amwinsta;
00180   DWORD dwHotkey;
00181   HMONITOR hMonitor;
00182   LUID luidSession;
00183   USERSTARTUPINFO usi;
00184   DWORD dwLayout;
00185   DWORD dwRegisteredClasses;
00186   /* ReactOS */
00187   LIST_ENTRY MenuListHead;
00188   FAST_MUTEX PrivateFontListLock;
00189   LIST_ENTRY PrivateFontListHead;
00190   FAST_MUTEX DriverObjListLock;
00191   LIST_ENTRY DriverObjListHead;
00192   struct tagKL* KeyboardLayout; // THREADINFO only
00193   W32HEAP_USER_MAPPING HeapMappings;
00194   struct _GDI_POOL *pPoolDcAttr;
00195   struct _GDI_POOL *pPoolBrushAttr;
00196   struct _GDI_POOL *pPoolRgnAttr;
00197 
00198 #if DBG
00199   BYTE DbgChannelLevel[DbgChCount];
00200 #endif
00201 } PROCESSINFO;
00202 
00203 #if DBG
00204 void NTAPI UserDbgPreServiceHook(ULONG ulSyscallId, PULONG_PTR pulArguments);
00205 ULONG_PTR NTAPI UserDbgPostServiceHook(ULONG ulSyscallId, ULONG_PTR ulResult);
00206 #endif
00207 

Generated on Sun May 27 2012 04:38:36 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.