Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

220 lines
7.0 KiB

  1. /***************************************************************************
  2. *
  3. * ICAAPI.H
  4. *
  5. * This module contains defines, structures, and function prototypes
  6. * for the ICA DLL (ICAAPI.DLL) interface to the Terminal Server Termdd Device Driver.
  7. *
  8. *
  9. * Copyright Microsoft Corporation, 1998
  10. *
  11. *
  12. ****************************************************************************/
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. /*
  17. * Function prototypes
  18. */
  19. NTSTATUS
  20. IcaOpen( OUT HANDLE * phIca );
  21. NTSTATUS
  22. IcaClose( IN HANDLE hIca );
  23. NTSTATUS
  24. IcaStackUnlock( IN HANDLE pContext );
  25. VOID cdecl
  26. IcaSystemTrace( IN HANDLE hIca, ULONG, ULONG, char *, ... );
  27. VOID cdecl
  28. IcaTrace( IN HANDLE hIca, ULONG, ULONG, char *, ... );
  29. NTSTATUS
  30. IcaIoControl( IN HANDLE hIca,
  31. IN ULONG IoControlCode,
  32. IN PVOID pInBuffer,
  33. IN ULONG InBufferSize,
  34. OUT PVOID pOutBuffer,
  35. IN ULONG OutBufferSize,
  36. OUT PULONG pBytesReturned );
  37. NTSTATUS
  38. IcaStackOpen( IN HANDLE hIca,
  39. IN STACKCLASS Class, // primary, shadow, passthrough
  40. IN PROC pStackIoControl, // pointer to StackIoControl procedure
  41. IN PVOID Context, // context value passed to above proc
  42. OUT HANDLE * phStack );
  43. NTSTATUS
  44. IcaStackClose( IN HANDLE hStack );
  45. NTSTATUS
  46. IcaStackTerminate( IN HANDLE hStack );
  47. VOID cdecl
  48. IcaStackTrace( IN HANDLE hStack, ULONG, ULONG, char *, ... );
  49. NTSTATUS
  50. IcaStackConnectionWait( IN HANDLE hStack,
  51. IN PWINSTATIONNAME pWinStationName,
  52. IN PWINSTATIONCONFIG2 pWinStationConfig,
  53. IN PICA_STACK_ADDRESS pAddress,
  54. OUT PVOID pEndpoint,
  55. IN ULONG BufferLength,
  56. OUT PULONG pEndpointLength );
  57. NTSTATUS
  58. IcaStackQueryLocalAddress( IN HANDLE hStack,
  59. IN PWINSTATIONNAME pWinStationName,
  60. IN PWINSTATIONCONFIG2 pWinStationConfig,
  61. IN PICA_STACK_ADDRESS pAddress,
  62. OUT PVOID pEndpoint,
  63. IN ULONG BufferLength,
  64. OUT PULONG pEndpointLength );
  65. NTSTATUS
  66. IcaStackConnectionRequest( IN HANDLE hStack,
  67. IN PWINSTATIONNAME pWinStationName,
  68. IN PWINSTATIONCONFIG2 pWinStationConfig,
  69. IN PICA_STACK_ADDRESS pAddress,
  70. OUT PVOID pEndpoint,
  71. IN ULONG BufferLength,
  72. OUT PULONG pEndpointLength );
  73. NTSTATUS
  74. IcaStackConnectionAccept( IN HANDLE hIca,
  75. IN HANDLE hStack,
  76. IN PWINSTATIONNAME pWinStationName,
  77. IN PWINSTATIONCONFIG2 pWinStationConfig,
  78. IN PVOID pEndpoint,
  79. IN ULONG EndpointLength,
  80. IN PICA_STACK_STATE_HEADER pStackState,
  81. IN ULONG BufferLength,
  82. IN PICA_TRACE pTrace );
  83. NTSTATUS
  84. IcaStackQueryState( IN HANDLE hStack,
  85. OUT PICA_STACK_STATE_HEADER pStackState,
  86. IN ULONG BufferLength,
  87. OUT PULONG pStateLength );
  88. NTSTATUS
  89. IcaStackCreateShadowEndpoint( HANDLE pContext,
  90. PWINSTATIONNAME pWinStationName,
  91. PWINSTATIONCONFIG2 pWinStationConfig,
  92. PICA_STACK_ADDRESS pAddressIn,
  93. PICA_STACK_ADDRESS pAddressOut );
  94. NTSTATUS
  95. IcaStackConnectionClose( IN HANDLE hStack,
  96. IN PWINSTATIONCONFIG2 pWinStationConfig,
  97. IN PVOID pEndpoint,
  98. IN ULONG EndpointLength );
  99. NTSTATUS
  100. IcaStackCallback( IN HANDLE hStack,
  101. IN PWINSTATIONCONFIG2 pWinStationConfig,
  102. IN WCHAR * pPhoneNumber,
  103. OUT PVOID pEndpoint,
  104. IN ULONG BufferLength,
  105. OUT PULONG pEndpointLength );
  106. NTSTATUS
  107. IcaStackDisconnect( IN HANDLE hStack,
  108. IN HANDLE hIca,
  109. IN PVOID pCallbackContext );
  110. NTSTATUS
  111. IcaStackReconnect( IN HANDLE hStack,
  112. IN HANDLE hIca,
  113. IN PVOID pCallbackContext,
  114. IN ULONG sessionId);
  115. NTSTATUS
  116. IcaStackIoControl( IN HANDLE hStack,
  117. IN ULONG IoControlCode,
  118. IN PVOID pInBuffer,
  119. IN ULONG InBufferSize,
  120. OUT PVOID pOutBuffer,
  121. IN ULONG OutBufferSize,
  122. OUT PULONG pBytesReturned );
  123. //
  124. // This version of IcaStackIoControl is not protected by the stack critical
  125. // section.
  126. //
  127. NTSTATUS
  128. _IcaStackIoControl( IN HANDLE hStack,
  129. IN ULONG IoControlCode,
  130. IN PVOID pInBuffer,
  131. IN ULONG InBufferSize,
  132. OUT PVOID pOutBuffer,
  133. IN ULONG OutBufferSize,
  134. OUT PULONG pBytesReturned );
  135. NTSTATUS
  136. IcaCdIoControl( IN HANDLE hStack,
  137. IN ULONG IoControlCode,
  138. IN PVOID pInBuffer,
  139. IN ULONG InBufferSize,
  140. OUT PVOID pOutBuffer,
  141. IN ULONG OutBufferSize,
  142. OUT PULONG pBytesReturned );
  143. NTSTATUS
  144. IcaCdWaitForSingleObject( HANDLE pContext,
  145. HANDLE hHandle,
  146. LONG Timeout );
  147. NTSTATUS
  148. IcaCdWaitForMultipleObjects( HANDLE pContext,
  149. ULONG Count,
  150. HANDLE * phHandle,
  151. BOOL bWaitAll,
  152. LONG Timeout );
  153. HANDLE
  154. IcaCdCreateThread( HANDLE pContext,
  155. PVOID pProc,
  156. PVOID pParam,
  157. PULONG pThreadId );
  158. NTSTATUS
  159. IcaChannelOpen( IN HANDLE hIca,
  160. IN CHANNELCLASS Channel, // cmd,con,video,mou,beep,kbd,virtual
  161. IN PVIRTUALCHANNELNAME pVirtualName,
  162. OUT HANDLE * phChannel );
  163. NTSTATUS
  164. IcaChannelClose( IN HANDLE hChannel );
  165. NTSTATUS
  166. IcaChannelIoControl( IN HANDLE hChannel,
  167. IN ULONG IoControlCode,
  168. IN PVOID pInBuffer,
  169. IN ULONG InBufferSize,
  170. OUT PVOID pOutBuffer,
  171. IN ULONG OutBufferSize,
  172. OUT PULONG pBytesReturned );
  173. VOID cdecl
  174. IcaChannelTrace( IN HANDLE hChannel, ULONG, ULONG, char *, ... );
  175. VOID
  176. IcaBreakOnDebugger( );
  177. NTSTATUS
  178. IcaPushConsoleStack( IN HANDLE pContext,
  179. IN PWINSTATIONNAME pWinStationName,
  180. IN PWINSTATIONCONFIG2 pWinStationConfig,
  181. IN PVOID pModuleData,
  182. IN ULONG ModuleDataLength );
  183. #ifdef __cplusplus
  184. }
  185. #endif