Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/XRDP/xrdpapi/   (X11 Server Version 0.10.6.1©)  Datei vom 7.6.2026 mit Größe 7 kB image not shown  

Quelle  xrdpapi.h

  Sprache: C
 

/**
 * xrdp: A Remote Desktop Protocol server.
 *
 * Copyright (C) Jay Sorg 2012-2013
 * Copyright (C) Thomas Goddard 2012-2013
 * Copyright (C) Laxmikant Rashinkar 2012-2013
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


/*
 * xrdpapi header, do not use os_calls.h, arch.h or any xrdp internal headers
 * this file is included in 3rd party apps
 */


#if !defined(XRDPAPI_H_)
#define XRDPAPI_H_

#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

#define WTS_CURRENT_SERVER_HANDLE                   0x00000000
#define WTS_CURRENT_SESSION                         0xffffffff

#define WTS_CHANNEL_OPTION_STATIC                   0x00000000
#define WTS_CHANNEL_OPTION_DYNAMIC                  0x00000001
#define WTS_CHANNEL_OPTION_DYNAMIC_NO_COMPRESS      0x00000001
#define WTS_CHANNEL_OPTION_DYNAMIC_PRI_LOW          0x00000001
#define WTS_CHANNEL_OPTION_DYNAMIC_PRI_MED          0x00000002
#define WTS_CHANNEL_OPTION_DYNAMIC_PRI_HIGH         0x00000003
#define WTS_CHANNEL_OPTION_DYNAMIC_PRI_REAL         0x00000004

#define WM_WTSSESSION_CHANGE            0x02B1

/*
 * codes passed in WPARAM for WM_WTSSESSION_CHANGE
 * Unlisted codes are not yet implemented.
 */

#define WTS_REMOTE_CONNECT                 0x3
#define WTS_REMOTE_DISCONNECT              0x4

typedef enum _WTS_INFO_CLASS
{
    //WTSInitialProgram,   // Not yet implemented
    //WTSApplicationName,  // Not yet implemented
    //WTSWorkingDirectory, // Not yet implemented
    //WTSOEMId,            // Not yet implemented
    //WTSSessionId,        // Not yet implemented
    //WTSUserName,         // Not yet implemented
    //WTSWinStationName,   // Not yet implemented
    //WTSDomainName,       // Not yet implemented
    WTSConnectState = 8
} WTS_INFO_CLASS;

typedef enum _WTS_CONNECTSTATE_CLASS
{
    // WTSActive,
    WTSConnected = 1,
    // WTSConnectQuery,
    // WTSShadow,
    WTSDisconnected = 4,
    // WTSIdle,
    // WTSListen,
    // WTSReset,
    // WTSDown,
    // WTSInit
} WTS_CONNECTSTATE_CLASS;

typedef enum _WTS_VIRTUAL_CLASS
{
    WTSVirtualClientData,
    WTSVirtualFileHandle
}
WTS_VIRTUAL_CLASS;

// Enumerated type for an error code from some calls. This is not
// compatible with the Windows API.
enum wts_errcode
{
    WTS_E_NO_ERROR = 0,
    // Retryable errors
    WTS_E_CHANSRV_NOT_UP,
    // Fatal errors
    WTS_E_BAD_SERVER = 32,
    WTS_E_BAD_SESSION_ID,
    WTS_E_RESOURCE_ERROR,
    WTS_E_BAD_INFO_CLASS
};

#define WTS_ERRCODE_FATAL(errcode) ((int)(errcode) >= (int)WTS_E_BAD_SERVER)

// Win32 basic types
// See https://learn.microsoft.com/en-us/windows/win32/winprog/windows-data-types
typedef uint32_t DWORD;
typedef uint32_t UINT;
typedef intptr_t UINT_PTR;
typedef intptr_t LONG_PTR;
typedef UINT_PTR WPARAM;
typedef LONG_PTR LPARAM;
typedef LONG_PTR LRESULT;

// WNDPROC emulation for WTSRegisterSessionNotificationEx()
typedef LRESULT WNDPROC(void *cbdata, UINT msg, WPARAM wParam, LPARAM lParam);

/*
 * Reference:
 * http://msdn.microsoft.com/en-us/library/windows/desktop/aa383464(v=vs.85).aspx
 */


void *WTSVirtualChannelOpen(void *hServer, unsigned int SessionId,
                            const char *pVirtualName);

void *WTSVirtualChannelOpenEx(unsigned int SessionId,
                              const char *pVirtualName, unsigned int flags);

int WTSVirtualChannelWrite(void *hChannelHandle, const char *Buffer,
                           unsigned int Length, unsigned int *pBytesWritten);

int WTSVirtualChannelRead(void *hChannelHandle, unsigned int TimeOut,
                          char *Buffer, unsigned int BufferSize,
                          unsigned int *pBytesRead);

int WTSVirtualChannelClose(void *hChannelHandle);

int WTSVirtualChannelQuery(void *hChannelHandle, WTS_VIRTUAL_CLASS WtsVirtualClass,
                           void **ppBuffer, unsigned int *pBytesReturned);

void WTSFreeMemory(void *pMemory);

/**
 * This function is similar to, but not the same as the Win32
 * function of the same name.
 *
 * The purpose of it is to allow an application to find out
 * (rather limited) information about the session
 *
 * @param hServer set to WTS_CURRENT_SERVER_HANDLE
 * @param SessionId current session ID; *must* be WTS_CURRENT_SESSION
 * @param WTSInfoClass parameter to query
 * @param ppBuffer pointer for result
 * @param pBytesReturned size of result
 * @param[out] errcode Status of operation if false returned. Can be NULL.
 * @return true for success
 */

int WTSQuerySessionInformationA(void *hServer,
                                unsigned int SessionId,
                                WTS_INFO_CLASS WTSInfoClass,
                                void           *ppBuffer,
                                DWORD          *pBytesReturned,
                                enum wts_errcode *errcode);

/**
 * This function is similar to, but not the same as the Win32
 * function of the same name.
 *
 * The purpose of it is to allow an application to receive
 * WM_WTSSESSION_CHANGE messages.
 *
 * @param hServer set to WTS_CURRENT_SERVER_HANDLE
 * @param[out] fd_ptr File descriptor to check for notification messages
 * @param dwFlags ignored
 * @param[out] errcode Status of operation if false returned. Can be NULL.
 * @return true for success
 *
 * The fd_ptr replaces the hWnd parameter in the Win32 call.
 *
 * After a successful call, the location pointed-to by fd_ptr will contain a
 * file descriptor which the caller can poll for session change messages.
 * When the file descriptor becomes readable, a call to
 * WTSGetDispatchMessage() will process a single session change message.
 *
 * The caller must do nothing with the returned file descriptor except poll it.
 */

int WTSRegisterSessionNotificationEx(void *hServer,
                                     int *fd_ptr,
                                     int dwFlags,
                                     enum wts_errcode *errcode);

/**
 * This function is similar to, but not the same as the Win32
 * function of the same name.
 *
 * The purpose of it is to deallocate resources associated with
 * WTSRegisterSessionNotificationEx()
 *
 * @param hServer set to WTS_CURRENT_SERVER_HANDLE
 * @param fd File descriptor from WTSRegisterSessionNotificationEx
 * @param[out] errcode Status of operation if false returned. Can be NULL.
 * @return true for success
 */

int WTSUnRegisterSessionNotificationEx(void *hServer,
                                       int fd,
                                       enum wts_errcode *errcode);


/** Replaces Win32 GetMessage() / DispatchMessage()
 *
 * @param cbdata callback data to pass in to WNDPROC
 * @param wndproc WNDPROC to call
 * @param[out] lResult Result of WNDPROC if call is successful
 * @return != 0 if a WNDPROC was successfully called
 */

int
WTSGetDispatchMessage(void *cbdata, WNDPROC wndproc, LRESULT *lResult);

#ifdef __cplusplus
}
#endif

#endif /* XRDPAPI_H_ */

Messung V0.5 in Prozent
C=92 H=91 G=91

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet am  2026-07-10) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.