windows-nt/Source/XPSP1/NT/public/internal/termsrv/inc/ctxdef.h
2020-09-26 16:20:57 +08:00

106 lines
3.4 KiB
C

/*******************************************************************************
*
* CTXDEF.H
*
* TerminalServer API support (typedefs).
*
* copyright notice: Microsoft Corporation 1998
*
*
*******************************************************************************/
/***********
* Defines
***********/
#define WINSTATIONNAME_LENGTH 32
/*
* Event flags for CtxWinStationWaitEvent
*/
#define WEVENT_NONE 0x00000000
#define WEVENT_CREATE 0x00000001 // new WinStation created
#define WEVENT_DELETE 0x00000002 // existing WinStation deleted
#define WEVENT_RENAME 0x00000004 // existing WinStation renamed
#define WEVENT_CONNECT 0x00000008 // WinStation connect to client
#define WEVENT_DISCONNECT 0x00000010 // WinStation logged on without client
#define WEVENT_LOGON 0x00000020 // user logon to existing WinStation
#define WEVENT_LOGOFF 0x00000040 // user logoff from existing WinStation
#define WEVENT_STATECHANGE 0x00000080 // WinStation state change
#define WEVENT_LICENSE 0x00000100 // License state change
#define WEVENT_ALL 0x7fffffff // wait for all event types
#define WEVENT_FLUSH 0x80000000 // unblock all waiters
/************
* Typedefs
************/
typedef WCHAR WINSTATIONNAMEW[ WINSTATIONNAME_LENGTH + 1 ];
typedef WCHAR * PWINSTATIONNAMEW;
typedef CHAR WINSTATIONNAMEA[ WINSTATIONNAME_LENGTH + 1 ];
typedef CHAR * PWINSTATIONNAMEA;
#ifdef UNICODE
#define WINSTATIONNAME WINSTATIONNAMEW
#define PWINSTATIONNAME PWINSTATIONNAMEW
#else
#define WINSTATIONNAME WINSTATIONNAMEA
#define PWINSTATIONNAME PWINSTATIONNAMEA
#endif /* UNICODE */
/*
* WinStation connect states
*/
typedef enum _WINSTATIONSTATECLASS {
State_Active, // user logged on to WinStation
State_Connected, // WinStation connected to client
State_ConnectQuery, // in the process of connecting to client
State_Shadow, // shadowing another WinStation
State_Disconnected, // WinStation logged on without client
State_Idle, // waiting for client to connect
State_Listen, // WinStation is listening for connection
State_Reset, // WinStation is being reset
State_Down, // WinStation is down due to error
State_Init, // WinStation in initialization
} WINSTATIONSTATECLASS;
typedef struct _SESSIONIDW {
union {
ULONG SessionId;
ULONG LogonId; // internal use only
};
WINSTATIONNAMEW WinStationName;
WINSTATIONSTATECLASS State;
} SESSIONIDW, * PSESSIONIDW;
typedef struct _SESSIONIDA {
union {
ULONG SessionId;
ULONG LogonId; // internal use only
};
WINSTATIONNAMEA WinStationName;
WINSTATIONSTATECLASS State;
} SESSIONIDA, * PSESSIONIDA;
#ifdef UNICODE
#define SESSIONID SESSIONIDW
#define PSESSIONID PSESSIONIDW
#else
#define SESSIONID SESSIONIDA
#define PSESSIONID PSESSIONIDA
#endif /* UNICODE */
/*
* NtUserCtxConnectState() values
* Used by routines that can't use WinStation API calls
* like DLL init routines.
*/
#define CTX_W32_CONNECT_STATE_CONSOLE 0
#define CTX_W32_CONNECT_STATE_IDLE 1
#define CTX_W32_CONNECT_STATE_EXIT_IN_PROGRESS 2
#define CTX_W32_CONNECT_STATE_CONNECTED 3
#define CTX_W32_CONNECT_STATE_DISCONNECTED 4