|
|
/***************************************************************************
* * 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
|