Source code of Windows XP (NT5)
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.

211 lines
6.4 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. IcaStackConnectionRequest( 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. IcaStackConnectionAccept( IN HANDLE hIca,
  67. IN HANDLE hStack,
  68. IN PWINSTATIONNAME pWinStationName,
  69. IN PWINSTATIONCONFIG2 pWinStationConfig,
  70. IN PVOID pEndpoint,
  71. IN ULONG EndpointLength,
  72. IN PICA_STACK_STATE_HEADER pStackState,
  73. IN ULONG BufferLength,
  74. IN PICA_TRACE pTrace );
  75. NTSTATUS
  76. IcaStackQueryState( IN HANDLE hStack,
  77. OUT PICA_STACK_STATE_HEADER pStackState,
  78. IN ULONG BufferLength,
  79. OUT PULONG pStateLength );
  80. NTSTATUS
  81. IcaStackCreateShadowEndpoint( HANDLE pContext,
  82. PWINSTATIONNAME pWinStationName,
  83. PWINSTATIONCONFIG2 pWinStationConfig,
  84. PICA_STACK_ADDRESS pAddressIn,
  85. PICA_STACK_ADDRESS pAddressOut );
  86. NTSTATUS
  87. IcaStackConnectionClose( IN HANDLE hStack,
  88. IN PWINSTATIONCONFIG2 pWinStationConfig,
  89. IN PVOID pEndpoint,
  90. IN ULONG EndpointLength );
  91. NTSTATUS
  92. IcaStackCallback( IN HANDLE hStack,
  93. IN PWINSTATIONCONFIG2 pWinStationConfig,
  94. IN WCHAR * pPhoneNumber,
  95. OUT PVOID pEndpoint,
  96. IN ULONG BufferLength,
  97. OUT PULONG pEndpointLength );
  98. NTSTATUS
  99. IcaStackDisconnect( IN HANDLE hStack,
  100. IN HANDLE hIca,
  101. IN PVOID pCallbackContext );
  102. NTSTATUS
  103. IcaStackReconnect( IN HANDLE hStack,
  104. IN HANDLE hIca,
  105. IN PVOID pCallbackContext,
  106. IN ULONG sessionId);
  107. NTSTATUS
  108. IcaStackIoControl( IN HANDLE hStack,
  109. IN ULONG IoControlCode,
  110. IN PVOID pInBuffer,
  111. IN ULONG InBufferSize,
  112. OUT PVOID pOutBuffer,
  113. IN ULONG OutBufferSize,
  114. OUT PULONG pBytesReturned );
  115. //
  116. // This version of IcaStackIoControl is not protected by the stack critical
  117. // section.
  118. //
  119. NTSTATUS
  120. _IcaStackIoControl( IN HANDLE hStack,
  121. IN ULONG IoControlCode,
  122. IN PVOID pInBuffer,
  123. IN ULONG InBufferSize,
  124. OUT PVOID pOutBuffer,
  125. IN ULONG OutBufferSize,
  126. OUT PULONG pBytesReturned );
  127. NTSTATUS
  128. IcaCdIoControl( 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. IcaCdWaitForSingleObject( HANDLE pContext,
  137. HANDLE hHandle,
  138. LONG Timeout );
  139. NTSTATUS
  140. IcaCdWaitForMultipleObjects( HANDLE pContext,
  141. ULONG Count,
  142. HANDLE * phHandle,
  143. BOOL bWaitAll,
  144. LONG Timeout );
  145. HANDLE
  146. IcaCdCreateThread( HANDLE pContext,
  147. PVOID pProc,
  148. PVOID pParam,
  149. PULONG pThreadId );
  150. NTSTATUS
  151. IcaChannelOpen( IN HANDLE hIca,
  152. IN CHANNELCLASS Channel, // cmd,con,video,mou,beep,kbd,virtual
  153. IN PVIRTUALCHANNELNAME pVirtualName,
  154. OUT HANDLE * phChannel );
  155. NTSTATUS
  156. IcaChannelClose( IN HANDLE hChannel );
  157. NTSTATUS
  158. IcaChannelIoControl( IN HANDLE hChannel,
  159. IN ULONG IoControlCode,
  160. IN PVOID pInBuffer,
  161. IN ULONG InBufferSize,
  162. OUT PVOID pOutBuffer,
  163. IN ULONG OutBufferSize,
  164. OUT PULONG pBytesReturned );
  165. VOID cdecl
  166. IcaChannelTrace( IN HANDLE hChannel, ULONG, ULONG, char *, ... );
  167. VOID
  168. IcaBreakOnDebugger( );
  169. NTSTATUS
  170. IcaPushConsoleStack( IN HANDLE pContext,
  171. IN PWINSTATIONNAME pWinStationName,
  172. IN PWINSTATIONCONFIG2 pWinStationConfig,
  173. IN PVOID pModuleData,
  174. IN ULONG ModuleDataLength );
  175. #ifdef __cplusplus
  176. }
  177. #endif