Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/****************************** Module Header ******************************\
* Module Name: globals.h * * Copyright (c) 1985 - 1999, Microsoft Corporation * * This module contains all the server's global variables * One must be executing on the server's context to manipulate * any of these variables or call any of these functions. Serializing access * to them is also a good idea. * * History: * 10-15-90 DarrinM Created. \***************************************************************************/
#ifndef _GLOBALS_
#define _GLOBALS_
#ifdef AUTORUN_CURSOR
UINT_PTR gtmridAutorunCursor; #endif // AUTORUN_CURSOR
extern ULONG InitSafeBootMode; // imported from NTOS (init.c), must use a pointer to reference the data
extern DWORD gdwPUDFlags;
/*
* Wallpaper Data. */ extern HBITMAP ghbmWallpaper; extern HPALETTE ghpalWallpaper; extern SIZERECT gsrcWallpaper; extern UINT gwWPStyle; extern HBITMAP ghbmDesktop; extern LPWSTR gpszWall;
/*
* Policy Settings. */ extern DWORD gdwPolicyFlags;
/*
* SafeBoot */ extern DWORD gDrawVersionAlways;
/*
* TS override flag for painting desktop version. */ extern DWORD gdwTSExcludeDesktopVersion;
/*
* External drivers */ extern BOOL gfUnsignedDrivers;
/*
* External drivers */ extern BOOL gfUnsignedDrivers;
/*
* Full-Drag. */ extern HRGN ghrgnUpdateSave; extern int gnUpdateSave;
extern PWND gspwndAltTab;
extern PWND gspwndShouldBeForeground;
/*
* full screen variables */ extern PWND gspwndScreenCapture; extern PWND gspwndInternalCapture; extern PWND gspwndFullScreen;
/*
* pre-cached monitor for mode changes */ extern PMONITOR gpMonitorCached;
/*
* logon notify window */ extern PWND gspwndLogonNotify;
extern PKEVENT gpEventDiconnectDesktop;
/*
* handle for WinSta0_DesktopSwitch event */ extern HANDLE ghEventSwitchDesktop; extern PKEVENT gpEventSwitchDesktop;
/*
* Thread Info Variables */ extern PTHREADINFO gptiTasklist; extern PTHREADINFO gptiShutdownNotify; extern PTHREADINFO gptiLockUpdate; extern PTHREADINFO gptiForeground; extern PTHREADINFO gptiBlockInput; extern PWOWTHREADINFO gpwtiFirst; extern PWOWPROCESSINFO gpwpiFirstWow;
/*
* Queue Variables */ extern PQ gpqForeground; extern PQ gpqForegroundPrev; extern PQ gpqCursor;
/*
* Accessibility globals */ extern FILTERKEYS gFilterKeys; extern STICKYKEYS gStickyKeys; extern MOUSEKEYS gMouseKeys; extern ACCESSTIMEOUT gAccessTimeOut; extern TOGGLEKEYS gToggleKeys; extern SOUNDSENTRY gSoundSentry;
extern HIGHCONTRAST gHighContrast; extern WCHAR gHighContrastDefaultScheme[];
/*
* Fade animation globals */ extern FADE gfade;
/*
* FilterKeys Support */ extern UINT_PTR gtmridFKActivation; extern UINT_PTR gtmridFKResponse; extern UINT_PTR gtmridFKAcceptanceDelay; extern int gFilterKeysState;
extern KE gFKKeyEvent; extern CONST PKE gpFKKeyEvent; extern ULONG gFKExtraInformation; extern int gFKNextProcIndex;
/*
* ToggleKeys Support */ extern UINT_PTR gtmridToggleKeys; extern ULONG gTKExtraInformation; extern int gTKNextProcIndex;
/*
* TimeOut Support */ extern UINT_PTR gtmridAccessTimeOut;
/*
* MouseKeys Support */ extern WORD gwMKButtonState; extern WORD gwMKCurrentButton; extern UINT_PTR gtmridMKMoveCursor; extern LONG gMKDeltaX; extern LONG gMKDeltaY; extern UINT giMouseMoveTable;
extern HWND ghwndSoundSentry; extern UINT_PTR gtmridSoundSentry;
extern MOUSECURSOR gMouseCursor;
/*
* Multilingual keyboard layout support. */ extern PKL gspklBaseLayout; extern HKL gLCIDSentToShell; extern DWORD gSystemFS; // System font's fontsignature (single bit)
extern KBDLANGTOGGLE gLangToggle[]; extern int gLangToggleKeyState;
extern BYTE gfInNumpadHexInput; extern BOOL gfEnableHexNumpad;
/*
* Grave accent keyboard switch for thai locales */ extern BOOL gbGraveKeyToggle;
/*
* Points to currently active Keyboard Layer tables */ extern PKBDTABLES gpKbdTbl; extern PKL gpKL; extern BYTE gSystemCPCharSet; // System's input locale charset
extern PKBDNLSTABLES gpKbdNlsTbl; extern DWORD gdwKeyboardAttributes;
/*
* from kbd.c */ extern USHORT ausNumPadCvt[]; // VK values for Numeric keypad.
extern DWORD gtimeStartCursorHide; extern RECT grcCursorClip; extern ULONG_PTR gdwMouseMoveExtraInfo; extern DWORD gdwMouseMoveTimeStamp; extern LASTINPUT glinp; extern POINT gptCursorAsync; extern PPROCESSINFO gppiInputProvider; extern PPROCESSINFO gppiLockSFW; extern UINT guSFWLockCount; #if DBG
extern BOOL gfDebugForegroundIgnoreDebugPort; #endif
// FE Modifiers_VK
extern PMODIFIERS gpModifiers_VK; extern MODIFIERS Modifiers_VK_STANDARD; extern MODIFIERS Modifiers_VK_IBM02;
/***************************************************************************\
* apulCvt_VK[] - obtain VK translation table from shift state * A VK translation table is used to change the value of the Virtual Key * according to the shift state. OEM only (not locale-specific) \***************************************************************************/ extern PULONG *gapulCvt_VK; extern ULONG *gapulCvt_VK_101[]; extern ULONG *gapulCvt_VK_84[]; // gapulCvt_VK_IBM02[] is for FE
extern ULONG *gapulCvt_VK_IBM02[];
/***************************************************************************\
* awNumPadCvt[] - Translate cursor movement keys to numpad keys \***************************************************************************/ extern BYTE aVkNumpad[];
/*
* OEM-specific special processing (keystroke simulators and filters) */ extern KEPROC aKEProcOEM[];
/*
* Cursor related Variables */ extern PCURSOR gpcurLogCurrent; extern PCURSOR gpcurPhysCurrent; extern RECT grcVDMCursorBounds; extern DWORD gdwLastAniTick; extern UINT_PTR gidCursorTimer;
extern PWND gspwndActivate; extern PWND gspwndLockUpdate; extern PWND gspwndMouseOwner; extern HWND ghwndSwitch;
extern UINT gwMouseOwnerButton; extern BOOL gbMouseButtonsRecentlySwapped;
extern UINT gdtMNDropDown;
extern int gcountPWO; /* count of pwo WNDOBJs in gdi */ extern int gnKeyboardSpeed; extern int giScreenSaveTimeOutMs; extern BOOL gbBlockSendInputResets;
extern PBWL gpbwlList;
extern UINT gdtDblClk;
extern UINT gcxMouseHover; extern UINT gcyMouseHover; extern UINT gdtMouseHover;
extern CAPTIONCACHE gcachedCaptions[];
extern PATTACHINFO gpai;
extern PDESKTOP gpdeskRecalcQueueAttach;
extern PWND gspwndCursor; extern PPROCESSINFO gppiStarting; extern PPROCESSINFO gppiList; extern PPROCESSINFO gppiWantForegroundPriority; extern PPROCESSINFO gppiForegroundOld;
extern PW32JOB gpJobsList;
extern UINT_PTR gtmridAniCursor;
extern int gcHotKey; extern PHOTKEYSTRUCT gpHotKeyList; extern int gcHotKeyAlloc; extern PIMEHOTKEYOBJ gpImeHotKeyListHeader;
extern int gMouseSpeed; extern int gMouseThresh1; extern int gMouseThresh2; extern int gMouseSensitivityFactor; extern int gMouseSensitivity; extern int gMouseTrails; extern int gMouseTrailsToHide; extern UINT_PTR gtmridMouseTrails;
extern UINT guDdeSendTimeout;
extern INT gnFastAltTabRows; /* Rows of icons in quick switch window */ extern INT gnFastAltTabColumns; /* Columns of icons in quick switch window */
extern DWORD gdwThreadEndSession; /* Shutting down system? */
extern HBRUSH ghbrHungApp; /* Brush used to redraw hung app windows. */
extern HBITMAP ghbmBits; extern HBITMAP ghbmCaption;
extern int gcxCaptionFontChar; extern int gcyCaptionFontChar; extern HFONT ghSmCaptionFont; extern int gcxSmCaptionFontChar; extern int gcySmCaptionFontChar;
extern HFONT ghMenuFont; extern HFONT ghMenuFontDef; extern int gcxMenuFontChar; extern int gcyMenuFontChar; extern int gcxMenuFontOverhang; extern int gcyMenuFontExternLeading; extern int gcyMenuFontAscent; extern int gcyMenuScrollArrow;
#ifdef LAME_BUTTON
extern HFONT ghLameFont; extern DWORD gdwLameFlags; #endif
#if DBG
extern UINT guModalMenuStateCount; #endif
/*
* From mnstate.c */ extern POPUPMENU gpopupMenu; extern MENUSTATE gMenuState;
extern HFONT ghStatusFont; extern HFONT ghIconFont;
/*
* Cached SMWP structure */ extern SMWP gSMWP;
extern DWORD gpdwCPUserPreferencesMask [SPI_BOOLMASKDWORDSIZE];
extern PROFILEVALUEINFO gpviCPUserPreferences [1 + SPI_DWORDRANGECOUNT];
/*
* Sys expunge control data. */ extern DWORD gdwSysExpungeMask; // hmods to be expunged
extern DWORD gcSysExpunge; // current count of expunges performed
/*
* System classes */ extern PCLS gpclsList;
extern PCURSOR gpcurFirst;
extern SYSCFGICO gasyscur[]; extern SYSCFGICO gasysico[];
/*
* Screen Saver Info */ extern PPROCESSINFO gppiScreenSaver; extern POINT gptSSCursor;
/*
* Orphaned fullscreen mode changes that DDraw used to cleanup. */ extern PPROCESSINFO gppiFullscreen;
/*
* accessibility byte-size data */ extern BYTE gLastVkDown; extern BYTE gBounceVk; extern BYTE gPhysModifierState; extern BYTE gCurrentModifierBit; extern BYTE gPrevModifierState; extern BYTE gLatchBits; extern BYTE gLockBits; extern BYTE gTKScanCode; extern BYTE gMKPreviousVk; extern BYTE gbMKMouseMode;
extern PSCANCODEMAP gpScancodeMap;
extern BYTE gStickyKeysLeftShiftCount; // # of consecutive left shift key presses.
extern BYTE gStickyKeysRightShiftCount; // # of consecutive right shift key presses.
/*
* Some terminal data is global in non-Hydra. */ extern DWORD gdwGTERMFlags; // GTERMF_ flags
extern PTHREADINFO gptiRit; extern PDESKTOP grpdeskRitInput; extern PKEVENT gpkeHidChange; extern PKEVENT gpkeMouseData;
/*
* Video Information */ extern BYTE gbFullScreen; extern PDISPLAYINFO gpDispInfo; extern BOOL gbMDEVDisabled;
/*
* Count of available cacheDC's. This is used in determining a threshold * count of DCX_CACHE types available. */ extern int gnDCECount;
extern int gnVisibleRedirectedCount;
/*
* Hung redraw list */ extern PVWPL gpvwplHungRedraw;
/*
* SetWindowPos() related globals */ extern HRGN ghrgnInvalidSum; extern HRGN ghrgnVisNew; extern HRGN ghrgnSWP1; extern HRGN ghrgnValid; extern HRGN ghrgnValidSum; extern HRGN ghrgnInvalid;
extern HRGN ghrgnInv0; // Temp used by InternalInvalidate()
extern HRGN ghrgnInv1; // Temp used by InternalInvalidate()
extern HRGN ghrgnInv2; // Temp used by InternalInvalidate()
extern HDC ghdcMem; extern HDC ghdcMem2;
/*
* DC Cache related globals */ extern HRGN ghrgnGDC; // Temp used by GetCacheDC et al
/*
* SPB related globals */ extern HRGN ghrgnSCR; // Temp used by SpbCheckRect()
extern HRGN ghrgnSPB1; extern HRGN ghrgnSPB2;
/*
* ScrollWindow/ScrollDC related globals */ extern HRGN ghrgnSW; // Temps used by ScrollDC/ScrollWindow
extern HRGN ghrgnScrl1; extern HRGN ghrgnScrl2; extern HRGN ghrgnScrlVis; extern HRGN ghrgnScrlSrc; extern HRGN ghrgnScrlDst; extern HRGN ghrgnScrlValid;
/*
* General Device and Driver information */ extern PDEVICEINFO gpDeviceInfoList; extern PERESOURCE gpresDeviceInfoList; #if DBG
extern DWORD gdwDeviceInfoListCritSecUseCount; extern DWORD gdwInAtomicDeviceInfoListOperation; #endif
extern PDRIVER_OBJECT gpWin32kDriverObject; extern DWORD gnRetryReadInput;
/*
* Mouse Information */ extern MOUSEEVENT gMouseEventQueue[]; extern DWORD gdwMouseQueueHead; extern DWORD gdwMouseEvents; extern PERESOURCE gpresMouseEventQueue; extern int gnMice;
/*
* Keyboard Information */ extern KEYBOARD_ATTRIBUTES gKeyboardInfo; extern CONST KEYBOARD_ATTRIBUTES gKeyboardDefaultInfo; extern KEYBOARD_INPUT_DATA gkei[]; extern KEYBOARD_INDICATOR_PARAMETERS gklp; extern KEYBOARD_INDICATOR_PARAMETERS gklpBootTime; extern KEYBOARD_TYPEMATIC_PARAMETERS gktp; extern int gnKeyboards; extern IO_STATUS_BLOCK giosbKbdControl; /*
* IME status for keyboard device */ extern KEYBOARD_IME_STATUS gKbdImeStatus;
extern BYTE gafAsyncKeyState[]; extern BYTE gafAsyncKeyStateRecentDown[];
extern BYTE gafRawKeyState[];
extern BOOLEAN gfKanaToggle;
extern DWORD gdwUpdateKeyboard; extern HARDERRORHANDLER gHardErrorHandler;
extern UINT gfsSASModifiers; // SAS modifiers
extern UINT gfsSASModifiersDown; // SAS modifiers really physically down
extern UINT gvkSAS; // The Secure Attention Sequence (SAS) key.
// FE_IME
extern DWORD gdwIMEOpenStatus; extern DWORD gdwIMEConversionStatus; extern HIMC gHimcFocus; extern BOOL gfIMEShowStatus; // end FE_IME
#ifdef GENERIC_INPUT
extern int gnHid; #endif
#ifdef MOUSE_IP
/*
* Sonar */ extern int giSonarRadius; extern BYTE gbLastVkForSonar; extern BYTE gbVkForSonarKick; extern POINT gptSonarCenter;
#endif
/*
* Clicklock */ extern BOOL gfStartClickLock; extern DWORD gdwStartClickLockTick;
/*
* Mouse move points */ extern MOUSEMOVEPOINT gaptMouse[]; extern UINT gptInd;
extern CONST ALWAYSZERO gZero; extern KBDTABLES KbdTablesFallback; extern CONST HANDLETYPEINFO gahti[];
/*
* Security data */
extern CONST GENERIC_MAPPING KeyMapping;
extern CONST GENERIC_MAPPING WinStaMapping; extern PSECURITY_DESCRIPTOR gpsdInitWinSta;
extern PPUBOBJ gpPublicObjectList;
extern CONST PROC apfnSimpleCall[]; extern CONST ULONG ulMaxSimpleCall;
extern PRIVILEGE_SET psTcb;
extern PVOID Win32KBaseAddress;
extern CONST GENERIC_MAPPING DesktopMapping;
extern CONST SFNSCSENDMESSAGE gapfnScSendMessage[];
extern PSMS gpsmsList;
extern TERMINAL gTermIO; extern TERMINAL gTermNOIO;
extern PTERMINAL gpMainTerminal; extern PWINDOWSTATION grpWinStaList; /*
* the logon desktop */ extern PDESKTOP grpdeskLogon;
extern CONST LUID luidSystem;
extern PKBDFILE gpkfList; // Currently loaded keyboard layout files.
extern PTHREADINFO gptiCurrent; extern PTIMER gptmrFirst; extern PKTIMER gptmrMaster; extern DWORD gcmsLastTimer; extern BOOL gbMasterTimerSet;
extern ULONGLONG gSessionCreationTime;
extern BOOL gbDisableAlpha;
extern LONG gUserProcessHandleQuota; extern DWORD gUserPostMessageLimit;
/*
* Active Accessibility - Window Events */ extern PEVENTHOOK gpWinEventHooks; // list of installed hooks
extern PNOTIFY gpPendingNotifies; // FILO of outstanding notifications
extern PNOTIFY gpLastPendingNotify; // end of above list.
extern DWORD gdwDeferWinEvent; // Defer notification is > 0
/*
* This is the timeout value used for callbacks to low level hook procedures */ extern int gnllHooksTimeout;
/*
* UserApiHook */ extern int gihmodUserApiHook; extern ULONG_PTR goffPfnInitUserApiHook; extern PPROCESSINFO gppiUserApiHook;
// FE_SB
extern PUSHORT gpusMouseVKey;
extern USHORT gNumLockVk; extern USHORT gOemScrollVk; // FE_SB
extern CONST WCHAR szOneChar[]; extern CONST WCHAR szY[]; extern CONST WCHAR szy[]; extern CONST WCHAR szN[];
extern CONST WCHAR szNull[];
extern WCHAR szWindowStationDirectory[MAX_SESSION_PATH];
extern HBRUSH ghbrWhite; extern HBRUSH ghbrBlack; extern HFONT ghFontSys;
extern HANDLE hModuleWin; extern HANDLE hModClient;
#if DBG
extern LONG TraceInitialization; #endif
extern DESKTOPINFO diStatic;
extern ULONG gdwDesktopId;
extern PERESOURCE gpresUser; extern PFAST_MUTEX gpHandleFlagsMutex;
extern PROC gpfnwp[];
#ifdef HUNGAPP_GHOSTING
extern PKEVENT gpEventScanGhosts; extern ATOM gatomGhost; #endif // HUNGAPP_GHOSTING
extern ATOM gatomShadow;
extern ATOM gatomConsoleClass; extern ATOM gatomFirstPinned; extern ATOM gatomLastPinned;
extern ATOM gatomMessage; extern ATOM gaOleMainThreadWndClass; extern ATOM gaFlashWState; extern ATOM atomCheckpointProp; extern ATOM atomDDETrack; extern ATOM atomQOS; extern ATOM atomDDEImp; extern ATOM atomWndObj; extern ATOM atomImeLevel;
#ifdef POOL_INSTR
extern DWORD gdwAllocCrt; // the index for the current allocation
#endif // POOL_INSTR
extern UINT guiOtherWindowCreated; extern UINT guiOtherWindowDestroyed; extern UINT guiActivateShellWindow;
extern ATOM atomUSER32; extern ATOM atomLayer;
extern HANDLE gpidLogon; extern PEPROCESS gpepInit;
extern PEPROCESS gpepCSRSS;
extern int giLowPowerTimeOutMs; extern int giPowerOffTimeOutMs;
extern PSERVERINFO gpsi; extern SHAREDINFO gSharedInfo;
extern DWORD giheLast; /* index to last allocated entry */
extern DWORD gdwDesktopSectionSize; extern DWORD gdwNOIOSectionSize;
#if defined (USER_PERFORMANCE)
extern CSSTATISTICS gCSStatistics; #endif // USER_PERFORMANCE
extern SECURITY_QUALITY_OF_SERVICE gqosDefault; // system default DDE qos.
extern CONST COLORREF gargbInitial[];
extern POWERSTATE gPowerState;
extern WCHAR gszMIN[15]; extern WCHAR gszMAX[15]; extern WCHAR gszRESUP[20]; extern WCHAR gszRESDOWN[20]; extern WCHAR gszHELP[20]; /* Commented out due to TandyT ...
* extern WCHAR gszSMENU[30]; */ extern WCHAR gszSCLOSE[15]; extern WCHAR gszCAPTIONTOOLTIP[CAPTIONTOOLTIPLEN];
/*
* Pointer to shared SERVERINFO data. */ extern HANDLE ghSectionShared; extern PVOID gpvSharedBase; extern PWIN32HEAP gpvSharedAlloc;
extern BOOL gbVideoInitialized;
extern BOOL gbNoMorePowerCallouts;
extern BOOL gbCleanedUpResources;
extern WSINFO gWinStationInfo;
extern ULONG gSessionId; extern BOOL gbRemoteSession; extern BOOL gfEnableWindowsKey;
extern PDESKTOP gspdeskDisconnect;
extern HANDLE ghRemoteVideoChannel;
extern HANDLE ghRemoteMouseChannel; extern HANDLE ghRemoteKeyboardChannel; extern HANDLE ghRemoteBeepChannel; extern PVOID gpRemoteBeepDevice; extern HANDLE ghRemoteThinwireChannel;
extern BOOL gfSwitchInProgress; extern USHORT gProtocolType; extern USHORT gConsoleShadowProtocolType;
extern BOOL gfRemotingConsole;
extern HANDLE ghConsoleShadowVideoChannel; extern HANDLE ghConsoleShadowMouseChannel; extern HANDLE ghConsoleShadowBeepChannel; extern PVOID gpConsoleShadowBeepDevice; extern HANDLE ghConsoleShadowKeyboardChannel; extern HANDLE ghConsoleShadowThinwireChannel; extern KHANDLE gConsoleShadowhDev; extern PKEVENT gpConsoleShadowDisplayChangeEvent;
extern CLIENTKEYBOARDTYPE gRemoteClientKeyboardType;
extern BOOL gfSessionSwitchBlock;
extern BOOL gbExitInProgress; extern BOOL gbCleanupInitiated;
extern BOOL gbStopReadInput;
extern PDESKTOP gspdeskShouldBeForeground; extern BOOL gbDesktopLocked;
extern BOOL gbFreezeScreenUpdates; extern ULONG gSetLedReceived; extern BOOL gbClientDoubleClickSupport;
extern BOOL gbDisconnectHardErrorAttach;
extern PKEVENT gpevtDesktopDestroyed;
extern PKEVENT gpevtVideoportCallout;
extern HDESK ghDisconnectDesk; extern HWINSTA ghDisconnectWinSta;
extern ULONG gnShadowers; extern BOOL gbConnected;
extern WCHAR gstrBaseWinStationName[];
extern PFILE_OBJECT gVideoFileObject; extern PFILE_OBJECT gThinwireFileObject;
extern PFILE_OBJECT gConsoleShadowVideoFileObject; extern PFILE_OBJECT gConsoleShadowThinwireFileObject;
extern PVOID gpThinWireCache; extern PVOID gpConsoleShadowThinWireCache;
extern WMSNAPSHOT gwms; extern BOOL gbSnapShotWindowsAndMonitors;
extern BOOL gbPnPWaiting; extern PKEVENT gpEventPnPWainting;
extern PVOID ghKbdTblBase; extern ULONG guKbdTblSize;
extern DWORD gdwHydraHint;
extern DWORD gdwCanPaintDesktop;
extern WCHAR gszUserName[40]; extern WCHAR gszDomainName[40]; extern WCHAR gszComputerName[40];
extern HANDLE ghCanActivateForegroundPIDs[];
extern DWORD gdwGuiThreads;
extern DWORD gSessionPoolMask; // Allocate out of session pool
/*
* Debug only globals */ #if DBG
extern DWORD gdwCritSecUseCount; extern DWORD gdwInAtomicOperation; extern LPCSTR gapszFNID[]; extern LPCSTR gapszMessage[]; extern int gnDeferredWinEvents;
extern BOOL gbTraceHydraApi; extern BOOL gbTraceDesktop;
/*
* The total number of thread locks for all threads in the system at a certain time * should be less than MAX_THREAD_LOCKS*MAX_THREAD_LOCKS_ARRAYS */ #define MAX_THREAD_LOCKS 1000
#define MAX_THREAD_LOCKS_ARRAYS 100
extern PTL gpaThreadLocksArrays[MAX_THREAD_LOCKS_ARRAYS]; extern PTL gFreeTLList; extern int gcThreadLocksArraysAllocated;
#endif // DBG
extern EX_RUNDOWN_REF gWinstaRunRef;
/*
* Reserved bit in the Drive Letter bit mask of a * WM_DEVICECHANGE message for the following wParam * (DBT_DEVICEREMOVECOMPLETE or DBT_DEVICEARRIVAL) * If this bit is set, then this message describes a change with * global drive letters and we should check if the drive letters * already exist in the receiver's LUID DosDevices. * If drive letter exists in the user's LUID DosDevices, then * un-set this drive letter in the msg's bitmask. */ #define DBV_FILTER_MSG 0x40000000
extern ULONG gLUIDDeviceMapsEnabled;
#ifdef SUBPIXEL_MOUSE
extern FIXPOINT gDefxTxf[], gDefyTxf[]; #endif
#endif
|