212 lines
6.4 KiB
C
212 lines
6.4 KiB
C
/***************************************************************************
|
|
*
|
|
* ICAAPI.H
|
|
*
|
|
* This module contains defines, structures, and function prototypes
|
|
* for the ICA DLL (ICAAPI.DLL) interface to the Terminal Server Termdd Device Driver.
|
|
*
|
|
*
|
|
* Copyright Microsoft Corporation, 1998
|
|
*
|
|
*
|
|
****************************************************************************/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*
|
|
* Function prototypes
|
|
*/
|
|
|
|
NTSTATUS
|
|
IcaOpen( OUT HANDLE * phIca );
|
|
|
|
NTSTATUS
|
|
IcaClose( IN HANDLE hIca );
|
|
|
|
NTSTATUS
|
|
IcaStackUnlock( IN HANDLE pContext );
|
|
|
|
VOID cdecl
|
|
IcaSystemTrace( IN HANDLE hIca, ULONG, ULONG, char *, ... );
|
|
|
|
VOID cdecl
|
|
IcaTrace( IN HANDLE hIca, ULONG, ULONG, char *, ... );
|
|
|
|
NTSTATUS
|
|
IcaIoControl( IN HANDLE hIca,
|
|
IN ULONG IoControlCode,
|
|
IN PVOID pInBuffer,
|
|
IN ULONG InBufferSize,
|
|
OUT PVOID pOutBuffer,
|
|
IN ULONG OutBufferSize,
|
|
OUT PULONG pBytesReturned );
|
|
|
|
NTSTATUS
|
|
IcaStackOpen( IN HANDLE hIca,
|
|
IN STACKCLASS Class, // primary, shadow, passthrough
|
|
IN PROC pStackIoControl, // pointer to StackIoControl procedure
|
|
IN PVOID Context, // context value passed to above proc
|
|
OUT HANDLE * phStack );
|
|
|
|
NTSTATUS
|
|
IcaStackClose( IN HANDLE hStack );
|
|
|
|
NTSTATUS
|
|
IcaStackTerminate( IN HANDLE hStack );
|
|
|
|
VOID cdecl
|
|
IcaStackTrace( IN HANDLE hStack, ULONG, ULONG, char *, ... );
|
|
|
|
NTSTATUS
|
|
IcaStackConnectionWait( IN HANDLE hStack,
|
|
IN PWINSTATIONNAME pWinStationName,
|
|
IN PWINSTATIONCONFIG2 pWinStationConfig,
|
|
IN PICA_STACK_ADDRESS pAddress,
|
|
OUT PVOID pEndpoint,
|
|
IN ULONG BufferLength,
|
|
OUT PULONG pEndpointLength );
|
|
|
|
NTSTATUS
|
|
IcaStackConnectionRequest( IN HANDLE hStack,
|
|
IN PWINSTATIONNAME pWinStationName,
|
|
IN PWINSTATIONCONFIG2 pWinStationConfig,
|
|
IN PICA_STACK_ADDRESS pAddress,
|
|
OUT PVOID pEndpoint,
|
|
IN ULONG BufferLength,
|
|
OUT PULONG pEndpointLength );
|
|
|
|
NTSTATUS
|
|
IcaStackConnectionAccept( IN HANDLE hIca,
|
|
IN HANDLE hStack,
|
|
IN PWINSTATIONNAME pWinStationName,
|
|
IN PWINSTATIONCONFIG2 pWinStationConfig,
|
|
IN PVOID pEndpoint,
|
|
IN ULONG EndpointLength,
|
|
IN PICA_STACK_STATE_HEADER pStackState,
|
|
IN ULONG BufferLength,
|
|
IN PICA_TRACE pTrace );
|
|
|
|
NTSTATUS
|
|
IcaStackQueryState( IN HANDLE hStack,
|
|
OUT PICA_STACK_STATE_HEADER pStackState,
|
|
IN ULONG BufferLength,
|
|
OUT PULONG pStateLength );
|
|
NTSTATUS
|
|
IcaStackCreateShadowEndpoint( HANDLE pContext,
|
|
PWINSTATIONNAME pWinStationName,
|
|
PWINSTATIONCONFIG2 pWinStationConfig,
|
|
PICA_STACK_ADDRESS pAddressIn,
|
|
PICA_STACK_ADDRESS pAddressOut );
|
|
|
|
NTSTATUS
|
|
IcaStackConnectionClose( IN HANDLE hStack,
|
|
IN PWINSTATIONCONFIG2 pWinStationConfig,
|
|
IN PVOID pEndpoint,
|
|
IN ULONG EndpointLength );
|
|
|
|
NTSTATUS
|
|
IcaStackCallback( IN HANDLE hStack,
|
|
IN PWINSTATIONCONFIG2 pWinStationConfig,
|
|
IN WCHAR * pPhoneNumber,
|
|
OUT PVOID pEndpoint,
|
|
IN ULONG BufferLength,
|
|
OUT PULONG pEndpointLength );
|
|
|
|
NTSTATUS
|
|
IcaStackDisconnect( IN HANDLE hStack,
|
|
IN HANDLE hIca,
|
|
IN PVOID pCallbackContext );
|
|
|
|
NTSTATUS
|
|
IcaStackReconnect( IN HANDLE hStack,
|
|
IN HANDLE hIca,
|
|
IN PVOID pCallbackContext,
|
|
IN ULONG sessionId);
|
|
|
|
NTSTATUS
|
|
IcaStackIoControl( IN HANDLE hStack,
|
|
IN ULONG IoControlCode,
|
|
IN PVOID pInBuffer,
|
|
IN ULONG InBufferSize,
|
|
OUT PVOID pOutBuffer,
|
|
IN ULONG OutBufferSize,
|
|
OUT PULONG pBytesReturned );
|
|
|
|
//
|
|
// This version of IcaStackIoControl is not protected by the stack critical
|
|
// section.
|
|
//
|
|
|
|
NTSTATUS
|
|
_IcaStackIoControl( IN HANDLE hStack,
|
|
IN ULONG IoControlCode,
|
|
IN PVOID pInBuffer,
|
|
IN ULONG InBufferSize,
|
|
OUT PVOID pOutBuffer,
|
|
IN ULONG OutBufferSize,
|
|
OUT PULONG pBytesReturned );
|
|
|
|
NTSTATUS
|
|
IcaCdIoControl( IN HANDLE hStack,
|
|
IN ULONG IoControlCode,
|
|
IN PVOID pInBuffer,
|
|
IN ULONG InBufferSize,
|
|
OUT PVOID pOutBuffer,
|
|
IN ULONG OutBufferSize,
|
|
OUT PULONG pBytesReturned );
|
|
|
|
NTSTATUS
|
|
IcaCdWaitForSingleObject( HANDLE pContext,
|
|
HANDLE hHandle,
|
|
LONG Timeout );
|
|
|
|
NTSTATUS
|
|
IcaCdWaitForMultipleObjects( HANDLE pContext,
|
|
ULONG Count,
|
|
HANDLE * phHandle,
|
|
BOOL bWaitAll,
|
|
LONG Timeout );
|
|
|
|
HANDLE
|
|
IcaCdCreateThread( HANDLE pContext,
|
|
PVOID pProc,
|
|
PVOID pParam,
|
|
PULONG pThreadId );
|
|
|
|
NTSTATUS
|
|
IcaChannelOpen( IN HANDLE hIca,
|
|
IN CHANNELCLASS Channel, // cmd,con,video,mou,beep,kbd,virtual
|
|
IN PVIRTUALCHANNELNAME pVirtualName,
|
|
OUT HANDLE * phChannel );
|
|
|
|
NTSTATUS
|
|
IcaChannelClose( IN HANDLE hChannel );
|
|
|
|
NTSTATUS
|
|
IcaChannelIoControl( IN HANDLE hChannel,
|
|
IN ULONG IoControlCode,
|
|
IN PVOID pInBuffer,
|
|
IN ULONG InBufferSize,
|
|
OUT PVOID pOutBuffer,
|
|
IN ULONG OutBufferSize,
|
|
OUT PULONG pBytesReturned );
|
|
|
|
VOID cdecl
|
|
IcaChannelTrace( IN HANDLE hChannel, ULONG, ULONG, char *, ... );
|
|
|
|
VOID
|
|
IcaBreakOnDebugger( );
|
|
|
|
NTSTATUS
|
|
IcaPushConsoleStack( IN HANDLE pContext,
|
|
IN PWINSTATIONNAME pWinStationName,
|
|
IN PWINSTATIONCONFIG2 pWinStationConfig,
|
|
IN PVOID pModuleData,
|
|
IN ULONG ModuleDataLength );
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|