VirtualBox

Changeset 11372 in vbox for trunk


Ignore:
Timestamp:
Aug 12, 2008 6:05:19 PM (17 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
34569
Message:

VRDP server interface version 2 (contrubuted by Sun) with redirection support, the header file.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vrdpapi.h

    r8155 r11372  
    542542/** The version of the VRDP server interface. */
    543543#define VRDP_INTERFACE_VERSION_1 (1)
     544#define VRDP_INTERFACE_VERSION_2 (2)
    544545
    545546/** The header that does not change when the interface changes. */
     
    718719                                            uint32_t *pcbOut));
    719720} VRDPENTRYPOINTS_1;
     721
     722/** The VRDP server entry points. Interface version 2.
     723 *  A new entry point VRDPRedirect has been added relative to version 1.
     724 */
     725typedef struct _VRDPENTRYPOINTS_2
     726{
     727    /** The header. */
     728    VRDPINTERFACEHDR header;
     729
     730    /** Destroy the server instance.
     731     *
     732     * @param hServer The server instance handle.
     733     *
     734     * @return IPRT status code.
     735     */
     736    DECLR3CALLBACKMEMBER(void, VRDPDestroy,(HVRDPSERVER hServer));
     737
     738    /** The server should start to accept clients connections.
     739     *
     740     * @param hServer The server instance handle.
     741     * @param fEnable Whether to enable or disable client connections.
     742     *                When is false, all existing clients are disconnected.
     743     *
     744     * @return IPRT status code.
     745     */
     746    DECLR3CALLBACKMEMBER(int, VRDPEnableConnections,(HVRDPSERVER hServer,
     747                                                   bool fEnable));
     748
     749    /** The server should disconnect the client.
     750     *
     751     * @param hServer     The server instance handle.
     752     * @param u32ClientId The client identifier.
     753     * @param fReconnect  Whether to send a "REDIRECT to the same server" packet to the
     754     *                    client before disconnecting.
     755     *
     756     * @return IPRT status code.
     757     */
     758    DECLR3CALLBACKMEMBER(void, VRDPDisconnect,(HVRDPSERVER hServer,
     759                                             uint32_t u32ClientId,
     760                                             bool fReconnect));
     761
     762    /**
     763     * Inform the server that the display was resized.
     764     * The server will query information about display
     765     * from the application via callbacks.
     766     *
     767     * @param hServer Handle of VRDP server instance.
     768     */
     769    DECLR3CALLBACKMEMBER(void, VRDPResize,(HVRDPSERVER hServer));
     770
     771    /**
     772     * Send a update.
     773     *
     774     * @param hServer   Handle of VRDP server instance.
     775     * @param uScreenId The screen index.
     776     * @param pvUpdate  Pointer to VBoxGuest.h::VRDPORDERHDR structure with extra data.
     777     * @param cbUpdate  Size of the update data.
     778     */
     779    DECLR3CALLBACKMEMBER(void, VRDPUpdate,(HVRDPSERVER hServer,
     780                                         unsigned uScreenId,
     781                                         void *pvUpdate,
     782                                         uint32_t cbUpdate));
     783
     784    /**
     785     * Set the mouse pointer shape.
     786     *
     787     * @param hServer  Handle of VRDP server instance.
     788     * @param pPointer The pointer shape information.
     789     */
     790    DECLR3CALLBACKMEMBER(void, VRDPColorPointer,(HVRDPSERVER hServer,
     791                                               const VRDPCOLORPOINTER *pPointer));
     792
     793    /**
     794     * Hide the mouse pointer.
     795     *
     796     * @param hServer Handle of VRDP server instance.
     797     */
     798    DECLR3CALLBACKMEMBER(void, VRDPHidePointer,(HVRDPSERVER hServer));
     799
     800    /**
     801     * Queues the samples to be sent to clients.
     802     *
     803     * @param hServer    Handle of VRDP server instance.
     804     * @param pvSamples  Address of samples to be sent.
     805     * @param cSamples   Number of samples.
     806     * @param format     Encoded audio format for these samples.
     807     *
     808     * @note Initialized to NULL when the application audio callbacks are NULL.
     809     */
     810    DECLR3CALLBACKMEMBER(void, VRDPAudioSamples,(HVRDPSERVER hServer,
     811                                               const void *pvSamples,
     812                                               uint32_t cSamples,
     813                                               VRDPAUDIOFORMAT format));
     814
     815    /**
     816     * Sets the sound volume on clients.
     817     *
     818     * @param hServer    Handle of VRDP server instance.
     819     * @param left       0..0xFFFF volume level for left channel.
     820     * @param right      0..0xFFFF volume level for right channel.
     821     *
     822     * @note Initialized to NULL when the application audio callbacks are NULL.
     823     */
     824    DECLR3CALLBACKMEMBER(void, VRDPAudioVolume,(HVRDPSERVER hServer,
     825                                              uint16_t u16Left,
     826                                              uint16_t u16Right));
     827
     828    /**
     829     * Sends a USB request.
     830     *
     831     * @param hServer      Handle of VRDP server instance.
     832     * @param u32ClientId  An identifier that allows the server to find the corresponding client.
     833     *                     The identifier is always passed by the server as a parameter
     834     *                     of the FNVRDPUSBCALLBACK. Note that the value is the same as
     835     *                     in the VRDPSERVERCALLBACK functions.
     836     * @param pvParm       Function specific parameters buffer.
     837     * @param cbParm       Size of the buffer.
     838     *
     839     * @note Initialized to NULL when the application USB callbacks are NULL.
     840     */
     841    DECLR3CALLBACKMEMBER(void, VRDPUSBRequest,(HVRDPSERVER hServer,
     842                                             uint32_t u32ClientId,
     843                                             void *pvParm,
     844                                             uint32_t cbParm));
     845
     846    /**
     847     * Called by the application when (VRDP_CLIPBOARD_FUNCTION_*):
     848     *   - (0) guest announces available clipboard formats;
     849     *   - (1) guest requests clipboard data;
     850     *   - (2) guest responds to the client's request for clipboard data.
     851     *
     852     * @param hServer     The VRDP server handle.
     853     * @param u32Function The cause of the call.
     854     * @param u32Format   Bitmask of announced formats or the format of data.
     855     * @param pvData      Points to: (1) buffer to be filled with clients data;
     856     *                               (2) data from the host.
     857     * @param cbData      Size of 'pvData' buffer in bytes.
     858     * @param pcbActualRead Size of the copied data in bytes.
     859     *
     860     * @note Initialized to NULL when the application clipboard callbacks are NULL.
     861     */
     862    DECLR3CALLBACKMEMBER(void, VRDPClipboard,(HVRDPSERVER hServer,
     863                                            uint32_t u32Function,
     864                                            uint32_t u32Format,
     865                                            void *pvData,
     866                                            uint32_t cbData,
     867                                            uint32_t *pcbActualRead));
     868
     869    /**
     870     * Query various information from the VRDP server.
     871     *
     872     * @param hServer   The VRDP server handle.
     873     * @param index     VRDP_QI_* identifier of information to be returned.
     874     * @param pvBuffer  Address of memory buffer to which the information must be written.
     875     * @param cbBuffer  Size of the memory buffer in bytes.
     876     * @param pcbOut    Size in bytes of returned information value.
     877     *
     878     * @remark The caller must check the *pcbOut. 0 there means no information was returned.
     879     *         A value greater than cbBuffer means that information is too big to fit in the
     880     *         buffer, in that case no information was placed to the buffer.
     881     */
     882    DECLR3CALLBACKMEMBER(void, VRDPQueryInfo,(HVRDPSERVER hServer,
     883                                            uint32_t index,
     884                                            void *pvBuffer,
     885                                            uint32_t cbBuffer,
     886                                            uint32_t *pcbOut));
     887
     888    /**
     889     * The server should redirect the client to the specified server.
     890     *
     891     * @param hServer       The server instance handle.
     892     * @param u32ClientId   The client identifier.
     893     * @param pszServer     The server to redirect the client to.
     894     * @param pszUser       The username to use for the redirection.
     895     *                      Can be NULL.
     896     * @param pszDomain     The domain. Can be NULL.
     897     * @param pszPassword   The password. Can be NULL.
     898     * @param u32SessionId  The ID of the session to redirect to.
     899     * @param pszCookie     The routing token used by a load balancer to
     900     *                      route the redirection. Can be NULL.
     901     */
     902    DECLR3CALLBACKMEMBER(void, VRDPRedirect,(HVRDPSERVER hServer,
     903                                             uint32_t u32ClientId,
     904                                             const char *pszServer,
     905                                             const char *pszUser,
     906                                             const char *pszDomain,
     907                                             const char *pszPassword,
     908                                             uint32_t u32SessionId,
     909                                             const char *pszCookie));
     910} VRDPENTRYPOINTS_2;
    720911
    721912#define VRDP_QP_NETWORK_PORT      (1)
     
    9381129
    9391130} VRDPCALLBACKS_1;
     1131
     1132/* Callbacks are the same for the version 1 and version 2 interfaces. */
     1133typedef VRDPCALLBACKS_1 VRDPCALLBACKS_2;
    9401134
    9411135/**
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette