Source code of Windows XP (NT5)
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.
|
|
/************************************************************************* * * syslib.h * * Header file for Terminal Server System Library routines. * Copyright Microsoft Corporation, 1998 * * *************************************************************************/ #ifndef _INC_CTXSYSLIB #define _INC_CTXSYSLIB
// // Routines for dealing with WinStations //
// // This function enumerates all WinStations in the system // calling the supplied function with the supplied argument. //
typedef BOOLEAN (CALLBACK* WINSTATIONENUMPROC)(ULONG, PLOGONIDW, ULONG_PTR);
BOOLEAN WinStationEnumeratorW( ULONG StartIndex, WINSTATIONENUMPROC pProc, ULONG_PTR lParam );
// // Routines for dealing with users and WinStations //
// // Get the WinStations User name // BOOL WinStationGetUserName( ULONG LogonId, PWCHAR pBuf, ULONG BufSize );
// // Get the WinStations ICA name // #ifdef UNICODE #define WinStationGetICAName WinStationGetICANameW #else #define WinStationGetICAName WinStationGetICANameA #endif
PWCHAR WinStationGetICANameW( ULONG LogonId );
PCHAR WinStationGetICANameA( ULONG LogonId );
// // Get the LogonId of the client currently being impersonated. // Returns 0 if error to default to console. // ULONG GetClientLogonId();
// // Find which WinStation a given user name is logged into. // // NOTE: If a user is logged on multiple times, the FIRST // occurance is returned. // BOOL FindUsersWinStation( PWCHAR pName, PULONG pLogonId );
// // Return whether the WinStation is hardwired // BOOLEAN WinStationIsHardWire( ULONG LogonId );
// // Return the user token for the user logged on the WinStation // BOOL GetWinStationUserToken( ULONG LogonId, PHANDLE pUserToken );
// // Routines to deal with NT Security //
// // Return whether the calling thread has admin rights. //
#if 0 BOOL TestUserForAdmin( VOID ); #endif
// // Return whether the calling thread is a member of requested group. //
BOOL TestUserForGroup( PWCHAR );
// // Debugging routines for dumping security descriptors //
#if DBG void DumpSecurityDescriptor( PSECURITY_DESCRIPTOR pSD ); #endif
// // Application compatibility flags // #define CITRIX_COMPAT_DOS 0x00000001 #define CITRIX_COMPAT_OS2 0x00000002 #define CITRIX_COMPAT_WIN16 0x00000004 #define CITRIX_COMPAT_WIN32 0x00000008 #define CITRIX_COMPAT_ALL 0x0000000F #define CITRIX_COMPAT_USERNAME 0x00000010 // return username for computername #define CITRIX_COMPAT_CTXBLDNUM 0x00000020 // return Citrix build number #define CITRIX_COMPAT_INISYNC 0x00000040 // sync user ini file to system #define CITRIX_COMPAT_ININOSUB 0x00000080 // Don't subst. user dir for sys dir #define CITRIX_COMPAT_NOREGMAP 0x00000100 // Disable registry mapping for app #define CITRIX_COMPAT_PEROBJMAP 0x00000200 // Per object user/system global mapping #define CITRIX_COMPAT_SYSWINDIR 0x00000400 // return system windows directory #define CITRIX_COMPAT_PHYSMEMLIM \ 0x00000800 // Limit the reported physical memory info #define CITRIX_COMPAT_LOGOBJCREATE \ 0x00001000 // Log object creation to file #define CITRIX_COMPAT_KBDPOLL_NOSLEEP \ 0x20000000 // Don't put app to sleep on unsuccessful // keyboard polling (WIN16 only)
// // Clipboard compatibility flags // #define CITRIX_COMPAT_CLIPBRD_METAFILE 0x00000008
BOOL SetCtxAppCompatFlags(ULONG ulAppFlags);
// // Create and set the user's temp directory // typedef struct { HANDLE UserToken; PSECURITY_DESCRIPTOR NewThreadTokenSD; } CTX_USER_DATA; typedef CTX_USER_DATA *PCTX_USER_DATA;
BOOL CtxCreateTempDir( PWSTR pwcEnvVar, PWSTR pwcLogonID, PVOID *pEnv, PWSTR *ppTempName, PCTX_USER_DATA pUserData );
// // Remove the directory and all files and subdirectories it contains // BOOL RemoveDir( PWCHAR dirname );
// // User Impersonation // HANDLE CtxImpersonateUser( PCTX_USER_DATA UserData, HANDLE ThreadHandle ); BOOL CtxStopImpersonating( HANDLE ThreadHandle );
#endif /* !_INC_CTXSYSLIB */
|