ClientEnumAvailRemoteDevOnServer
 ClientEnumAvailRemoteDevOnServerTimeout
 ClientEnumAvailRemoteDev
 ClientRemoveEnumOfRemoteDev
 ClientGetRemoteDevNetSettings
 ClientGetRemoteDevName
 ClientGetStateSharedDevice
 ClientGetConnectedDevValueByName
 ClientGetRemoteDevValueByName
 ClientAddRemoteDevManually
 ClientAddRemoteDevManuallyEx
 ClientAddRemoteDev
 ClientAddRemoteDevEx
 ClientStartRemoteDev
 ClientStopRemoteDev
 ClientRemoveRemoteDev
 ClientGetStateRemoteDev
 ClientTrafficRemoteDevIsEncrypted
 ClientRemoteDevRequiresAuth
 ClientEnumRemoteDevOverRdp
 ClientTrafficRemoteDevIsCompressed
 ClientRemoteDevDisconnect
 ClientRemoteDisconnectIsEnabled
 ClientGetRdpAutoconnect
 ClientSetRdpAutoconnect


ClientEnumAvailRemoteDevOnServer


BOOL ClientEnumAvailRemoteDevOnServer (
IN VARIANT szServer,
OUT PVOID *ppFindContext
);

 
Routine Description:

 
Creates an enumerator of all shared USB devices on the remote server.

 
Arguments:

 
szServer - the name of the server for which the enumerator of all shared USB devices is created.

 
ppFindContext - a pointer to the remote USB devices context used in subsequent operations with devices.

 

Return Value:

 
True - if the remote server exists, and enumerator of all shared USB devices was created. Otherwise the 
"False" value is returned.


ClientEnumAvailRemoteDevOnServerTimeout


IN VARIANT szServer,
OUT PVOID *ppFindContext,
IN DWORD dwTimeoutMs
)

 
Routine Description:

 
Creates an enumerator of all shared USB devices on the remote server with the specified timeout.

 
Arguments:

 
szServer - the name of the server for which the enumerator of all shared USB devices is created.

 
ppFindContext - a pointer to the remote USB devices context used in subsequent operations with devices.

 
dwTimeoutMs - timeout to connect to remote server, in milliseconds.

 
Return Value:

 
True - if the remote server exists, and enumerator of all shared USB devices was created.
False - if remote server is offline or didn't accept connection within the specified timeout.


ClientEnumAvailRemoteDev


BOOL ClientEnumAvailRemoteDev (
OUT PVOID *ppFindContext
);

 
Routine Description:

 
Creates an enumerator of all remote USB devices on the server.

 
Arguments:

 
ppFindContext - a pointer to the remote USB devices context used in subsequent operations with devices.

 
Return Value:

 
True - if the function was executed successfully. Otherwise the "False" value is returned.


ClientRemoveEnumOfRemoteDev


BOOL ClientRemoveEnumOfRemoteDev (
IN PVOID pFindContext
);

 
Routine Description:

 
Removes remote USB devices enumerator.

 
Arguments:

 
pFindContext - remote USB devices context returned by the ClientEnumAvailRemoteDevOnServer or ClientEnumAvailRemoteDev functions.

 
Return Value:

 
True - if the function was executed successfully. Otherwise the "False" value is returned.


ClientGetRemoteDevNetSettings


BOOL ClientGetRemoteDevNetSettings (
IN PVOID pFindContext,
IN long iIndex,
OUT VARIANT *NetSettings
);

 
Routine Description:

 
Gets network settings for the remote USB device.

 
Arguments:

 
pFindContext - remote USB devices context returned by the ClientEnumAvailRemoteDevOnServer or
ClientEnumAvailRemoteDev functions.

 
iIndex - serial number of the remote USB device.

 
NetSettings - a pointer to string variable to which information about network settings of the remote USB device is returned. If a full network path is set ("host_name:tcp_port"), it is a standard network connection. If only "tcp_port" is set, it is a callback connection, and the client is waiting for the incoming connection
from the server.

 
Return Value:

 
True - if the function was executed successfully. Otherwise the "False" value is returned.


ClientGetRemoteDevName


BOOL ClientGetRemoteDevName (
IN PVOID pFindContext,
IN long iIndex,
OUT VARIANT *strName
);

 
Routine Description:

 
Gets remote USB device name.

 
Arguments:

 
pFindContext - remote USB devices context returned by the ClientEnumAvailRemoteDevOnServer or ClientEnumAvailRemoteDev functions.

 

iIndex - serial number of the remote USB device.

 
strName - a pointer to string variable to which the name of the remote USB device is returned.

 

Return Value:

 
True - if the function was executed successfully. Otherwise the "False" value is returned.


ClientGetStateSharedDevice


BOOL
ClientGetStateSharedDevice (
IN PVOID pClientContext,
IN LONG iIndex,
LONG *piState,
VARIANT *RemoteHost
);

 
Routine Description:

 
This function requests the current status of shared remote device from the remote server.

 

Arguments:

 
pClientContext - remote USB devices context returned by the ClientEnumAvailRemoteDevOnServer or
ClientEnumAvailRemoteDev functions.

 
iIndex - serial number of the remote USB device.

 
piState - returns the current status of the shared USB device:

 
1 – the device is waiting for connection;
2 – the device is already connected.

 
RemoteHost - the name or IP address of the client connected to the shared port. Valid only when piState
= 2


ClientGetConnectedDevValueByName


BOOL
ClientGetConnectedDevValueByName (
IN PVOID pClientContext,
IN long iIndex,
IN VARIANT strInfoName,
OUT VARIANT *pVarInfo
)

 
Routine Description:

 
Returns the name of the value for the connected remote USB device.

 
Arguments:

 
pClientContext - remote USB devices context returned by ClientEnumAvailRemoteDev.

 
iIndex - serial number of the remote USB device.

 
strValueName - name of the value in question.

 
pValue - pointer to the output value.

 
Return Value:

 
True - if the function was executed successfully. False - if an error occurred.

 
Notes:

 
Supported value names are:

 

NAME (string)
name of the USB device
NICK (string)
user description of the USB device
AUTH (bool)
authorization
ENCR (bool)
encryption
COMPR (bool)
compression
STATUS (int)
connection status (for shared USB devices)
SHARED_WITH (string)
client connected to the shared USB device
USBHUB (string)
USB hub name
USBPORT (string)
USB port name
USBLOC (string)
USB port location
USBCLASS (string)
USB device class three-byte combination which consists of a single hex-ASCII string of xxyyzz view, where xx=class, yy=subclass, zz=protocol


ClientGetRemoteDevValueByName

BOOL
ClientGetRemoteDevValueByName (
IN PVOID pClientContext,
IN long iIndex,
IN VARIANT strValueName,
OUT VARIANT *pValue
)

 
Routine Description:

 
Returns the name of the value for the remote USB device.

 
Arguments:

 
pClientContext - remote USB devices context returned by the ClientEnumAvailRemoteDevOnServer or
ClientEnumAvailRemoteDev or ClientEnumRemoteDevOverRdp functions.

 
iIndex - serial number of the remote USB device.

 
strValueName - name of the value in question.

 
pValue - pointer to the output value.

 
Return Value:

 
True - if the function was executed successfully. False - if an error occurred.

 
Notes:

 
- The function returns cached data for the remote USB device.

 
- Supported value names are:

 

NAME (string) 
name of the USB device
NICK (string) 
user description of the USB device
AUTH (bool)
authorization
ENCR (bool) 
encryption
COMPR (bool)
compression
STATUS (int)
connection status (for shared USB devices)
SHARED_WITH (string)
client connected to the shared USB device
ALLOW_RDISCONN (bool)
allow disconnection of remote clients from the shared USB device by other clients
SBHUB (string)
USB hub name
USBPORT (string)
USB port name
AUTO_ADDED (bool)
add USB device automatically on connection
USBCLASS (string)
USB device class triple as single hex-ascii string xxyyzz (where xx=class, yy=subclass, zz=protocol)
BCDUSB (uint)
version of the USB specification
VID (uint)
vendor identifier for the device
PID (uint)
product identifier
REV (uint)
version of the device
SERIAL (string)
serial number of the device
USBLOC (string)
USB port location

  

Return Value:

 
True - if the function was executed successfully. False - if an error occurred.


ClientAddRemoteDevManually


BOOL ClientAddRemoteDevManually (
IN VARIANT szNetSettings
);

 
Routine Description:

 
Is used to add a remote USB device to the list manually. This function is required when adding a remote USB device, which initializes callback connection, and if the server is not in the same network with the client. If network settings are known, remote USB devices with standard connection type also can be added. For example:

 
localhost:5000 – standard client;
5000 – callback client.

 

Arguments:

 
szNetSettings - network settings for the remote USB device. If a full network path is set
("host_name:tcp_port"), it is a standard network connection. If only "tcp_port" is set, it is a callback
connection, and the client is waiting for the incoming connection from the server.

 

Return Value:

 
True - if the function was executed successfully. False - if an error occurred.


ClientAddRemoteDevManuallyEx


BOOL
ClientAddRemoteDevManuallyEx (
IN VARIANT szNetSettings,
IN BOOL bRemember,
IN BOOL bAutoAdded
)

 
Routine Description:

 
Adds remote USB device to the list manually. See ClientAddRemoteDevManually for details. Allows the
caller to control how USB service should save settings to non-volatile memory.

 

Arguments:

 
szNetSettings - network settings for the remote USB device. If a full network path is set
("host_name:tcp_port"), it is a standard network connection.

 

If only "tcp_port" is set, it is a callback connection, and the client is waiting for the incoming connection
from the server.

 
bRemember - if TRUE, new client is added to non-volatile settings of USB service and will be reactivated
after restart.

 
bAutoAdded - flag to indicate whether device was added implicitly (saved to non-volatile memory and can
be later asked with ClientGetRemoteDevValueByName).

 
Return Value:

 
True - if the function was executed successfully. False - if an error occurred.


ClientAddRemoteDev

BOOL
ClientAddRemoteDev (
IN PVOID pClientContext,
IN long iIndex,
)

 
Routine Description:

 
Adds remote USB device to the list.

 
Arguments:

 
pClientContext - remote USB devices context returned by the ClientEnumAvailRemoteDevOnServer function.

 
iIndex - serial number of the remote USB device.

 
Return Value:

 
True - if the function was executed successfully. False - if an error occurred.


ClientAddRemoteDevEx

BOOL
ClientAddRemoteDevEx (
IN PVOID pClientContext,
IN long iIndex,
IN BOOL bRemember,
IN BOOL bAutoAdded
)

 
Routine Description:

 
Adds remote USB device to the list. Allows the caller to control how USB service should save settings to non-volatile memory.

 
Arguments:

 
pFindContext - remote USB devices context returned by the ClientEnumAvailRemoteDevOnServer.

 
iIndex - serial number of the remote USB device.

 
bRemember - if TRUE, new client is added to non-volatile settings of USB service and will be reactivated after restart.

 
bAutoAdded - flag to indicate whether device was added implicitly (saved to non-volatile memory and can be later asked with ClientGetRemoteDevValueByName).

 
Return Value:

 
True - if the function was executed successfully. False – if an error occurred.


ClientStartRemoteDev

BOOL ClientStartRemoteDev (
IN PVOID pClientContext,
IN long iIndex,
IN BOOL bAutoReconnect,
IN VARIANT strPassword
);

 
Routine Description:

 
Initializes client’s connection to the server.

 
Arguments:

 
pClientContext - remote USB devices context returned by the ClientEnumAvailRemoteDevOnServer or ClientEnumAvailRemoteDev functions.

 
iIndex - serial number of the remote USB device.

 
bAutoReconnect - if this parameter is True, reconnection attempts will be made after the connection break. If False - the client disconnects.

 
strPassword - authorization password if required. You can find out whether authorization is required by calling the ClientRemoteDevRequiresAuth function.

 
Return Value:

 
True - if the function was executed successfully. False - if an error occurred.


ClientStopRemoteDev

BOOL ClientStopRemoteDev (
IN PVOID pClientContext,
IN long iIndex,
);

 
Routine Description:

 
Stops connection of the remote USB device to the server.

 
Arguments:

 
pClientContext - remote USB devices context returned by the ClientEnumAvailRemoteDevOnServer or ClientEnumAvailRemoteDev functions.

 
iIndex - serial number of the remote USB device.

 
Return Value:

 
True - if the function was executed successfully. False - if an error occurred.


ClientRemoveRemoteDev

BOOL ClientRemoveRemoteDev (
IN PVOID pClientContext,
IN long iIndex,
);

 
Routine Description:

 
Removes the remote USB device from the list.

 
Arguments:

 
pClientContext - remote USB devices context returned by the ClientEnumAvailRemoteDevOnServer or
ClientEnumAvailRemoteDev functions.

 
iIndex - serial number of the remote USB device.

 
Return Value:

 
True - if the function was executed successfully. False - if an error occurred.


ClientGetStateRemoteDev

BOOL ClientGetStateRemoteDev (
IN PVOID pClientContext,
IN long iIndex,
OUT LONG *piState,
OUT VARIANT *RemoteHost
);

 
Routine Description:

 
Gets the current status of client connection to the remote USB device.

 
Arguments:

 
pClientContext - remote USB devices context returned by the ClientEnumAvailRemoteDevOnServer or ClientEnumAvailRemoteDev functions.

 

iIndex - serial number of the remote USB device.

 

piState - a pointer to long variable to which the current connection status is returned:

 

0 – the client is not connected to the device;
2 – the client is connected to the device.

 

RemoteHost - a pointer to string variable to which the name of the remote host, currently connected to the server, is returned. This parameter is set when piState is 2.

 

Return Value:

 
True - if the function was executed successfully. False - if an error occurred.


ClientTrafficRemoteDevIsEncrypted

BOOL ClientTrafficRemoteDevIsEncrypted (
IN PVOID pClientContext,
IN long iIndex,
OUT BOOL *bCrypt
);

 
Routine Description:

 
Determines whether network traffic for the remote USB device is encrypted.

 
Arguments:

 
pClientContext - remote USB devices context returned by the ClientEnumAvailRemoteDevOnServer or ClientEnumAvailRemoteDev functions.

 
iIndex - serial number of the remote USB device.

 
bCrypt – a pointer to a boolean variable to which information about network traffic encryption is returned. True - if network traffic is encrypted. Otherwise the "False" value is returned.

 
Return Value:

 
True - if the function was executed successfully. Otherwise the "False" value is returned.


ClientRemoteDevRequiresAuth

BOOL ClientRemoteDevRequiresAuth (
IN PVOID pClientContext,
IN long iIndex,
OUT BOOL *bAuth
);

 
Routine Description:

 
Determines whether authorization is required to establish a connection with the remote USB device.

 
Arguments:

 
pClientContext - remote USB devices context returned by the ClientEnumAvailRemoteDevOnServer or ClientEnumAvailRemoteDev functions.

 
iIndex - serial number of the remote USB device.

 
bAuth - a pointer to a boolean variable to which information about authorization is returned. True - if authorization is required. Otherwise the "False" value is returned.

 
Return Value:

 
True - if the function was executed successfully. Otherwise the "False" value is returned.


ClientEnumRemoteDevOverRdp

BOOL
ClientEnumRemoteDevOverRdp (
OUT PVOID *ppFindContext
);

 
Routine Description:

 
This function enumerates all remote devices currently available over RDP.

 
Return Value:

 
True - if the function was executed successfully.
False - if an error occurred.


ClientTrafficRemoteDevIsCompressed

BOOL ClientTrafficRemoteDevIsCompressed (
IN PVOID pClientContext,
IN long iIndex,
OUT BOOL *bCompress
);

 
Routine Description:

 
Determines whether network traffic for the remote shared USB device is compressed.

 
Arguments:

 
pClientContext - remote USB devices context returned by the ClientEnumAvailRemoteDevOnServer or ClientEnumAvailRemoteDev functions.

 
iIndex - serial number of the remote USB device.

 
bCompress – is True if network traffic is compressed. Otherwise the "False" value is returned.

 
Return Value:

 
True if network traffic for the remote shared USB device is compressed. Otherwise the "False" value is 
returned.


ClientRemoteDevDisconnect

ClientRemoteDevDisconnect (
IN PVOID pClientContext,
IN long iIndex,
)

 
Routine Description:

 
Stops connection of the remote USB device to the remote server.

 
Arguments:

 
pClientContext - remote USB devices context returned by the ClientEnumAvailRemoteDevOnServer or ClientEnumAvailRemoteDev functions.

 
iIndex - serial number of the remote USB device.

 
Return Value:

 
True - if the function was executed successfully. False - if an error occurred.


ClientRemoteDisconnectIsEnabled

BOOL
ClientRemoteDisconnectIsEnabled (
IN PVOID pClientContext,
IN long iIndex,
OUT BOOL *bEnable
)

 
Routine Description:

 
Determines whether to allow the client to be disconnected by another client.

 
Arguments:

 
pClientContext - remote USB devices context returned by the ClientEnumAvailRemoteDevOnServer or ClientEnumAvailRemoteDev functions.

 
iIndex - serial number of the remote USB device.

 
bEnable – is True if the client is enabled to be disconnected by another client.

 

Return Value:

 
True - if the function was executed successfully. False - if an error occurred.


ClientGetRdpAutoconnect


BOOL
ClientGetRdpAutoconnect (void)

 
Routine Description:

 
Gets status of RDP auto-connect option.

 
Arguments:

 
None.

 
Return Value:

 
True - if RDP auto-connect option is enabled.


ClientSetRdpAutoconnect

BOOL
ClientSetRdpAutoconnect (
IN BOOL bEnableAutoconnect
)

 
Routine Description:

 
Enables or disables RDP auto-connect option.

 
Arguments:

 
bEnableAutoconnect – enables RDP auto-connection, if set to TRUE;

 
Disables RDP auto-connection, if set to FALSE.

 
Return Value:

 
True - if the function was executed successfully. False - if an error occurred.