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.

245 lines
5.4 KiB

  1. /*++
  2. Copyright (c) 2000-2002 Microsoft Corporation
  3. Module Name:
  4. uctdi.h
  5. Abstract:
  6. This file contains the header defintions for the HTTP.SYS TDI interface
  7. code.
  8. Author:
  9. Henry Sanders (henrysa) 07-Aug-2000
  10. Revision History:
  11. --*/
  12. #ifndef _UCTDI_H_
  13. #define _UCTDI_H_
  14. //
  15. // Forward references.
  16. //
  17. typedef struct _UC_CLIENT_CONNECTION *PUC_CLIENT_CONNECTION;
  18. typedef union _UC_CONNECTION_FLAGS UC_CONNECTION_FLAGS;
  19. //
  20. // Private constants.
  21. //
  22. //
  23. // Private types.
  24. //
  25. //
  26. NTSTATUS
  27. UcCloseConnection(
  28. IN PVOID pConnectionContext,
  29. IN BOOLEAN AbortiveDisconnect,
  30. IN PUL_COMPLETION_ROUTINE pCompletionRoutine,
  31. IN PVOID pCompletionContext,
  32. IN NTSTATUS Status
  33. );
  34. NTSTATUS
  35. UcpRestartSendData(
  36. IN PDEVICE_OBJECT pDeviceObject,
  37. IN PIRP pIrp,
  38. IN PVOID pContext
  39. );
  40. NTSTATUS
  41. UcpBeginAbort(
  42. IN PUC_CLIENT_CONNECTION pConnection,
  43. IN PUL_COMPLETION_ROUTINE pCompletionRoutine,
  44. IN PVOID pCompletionContext
  45. );
  46. NTSTATUS
  47. UcpBeginDisconnect(
  48. IN PUC_CLIENT_CONNECTION pConnection,
  49. IN PUL_COMPLETION_ROUTINE pCompletionRoutine,
  50. IN PVOID pCompletionContext
  51. );
  52. NTSTATUS
  53. UcpRestartAbort(
  54. IN PDEVICE_OBJECT pDeviceObject,
  55. IN PIRP pIrp,
  56. IN PVOID pContext
  57. );
  58. NTSTATUS
  59. UcpRestartDisconnect(
  60. IN PDEVICE_OBJECT pDeviceObject,
  61. IN PIRP pIrp,
  62. IN PVOID pContext
  63. );
  64. NTSTATUS
  65. UcpConnectComplete(
  66. PDEVICE_OBJECT pDeviceObject,
  67. PIRP pIrp,
  68. PVOID Context
  69. );
  70. NTSTATUS
  71. UcpSendRequestComplete(
  72. PDEVICE_OBJECT pDeviceObject,
  73. PIRP pIrp,
  74. PVOID Context
  75. );
  76. NTSTATUS
  77. UcpTdiReceiveHandler(
  78. IN PVOID pTdiEventContext,
  79. IN CONNECTION_CONTEXT ConnectionContext,
  80. IN ULONG ReceiveFlags,
  81. IN ULONG BytesIndicated,
  82. IN ULONG BytesAvailable,
  83. OUT ULONG *pBytesTaken,
  84. IN PVOID pTsdu,
  85. OUT PIRP *pIrp
  86. );
  87. NTSTATUS
  88. UcpTdiDisconnectHandler(
  89. IN PVOID pTdiEventContext,
  90. IN CONNECTION_CONTEXT ConnectionContext,
  91. IN LONG DisconnectDataLength,
  92. IN PVOID pDisconnectData,
  93. IN LONG DisconnectInformationLength,
  94. IN PVOID pDisconnectInformation,
  95. IN ULONG DisconnectFlags
  96. );
  97. PIRP
  98. UcpCreateDisconnectIrp(
  99. IN PUX_TDI_OBJECT pTdiObject,
  100. IN ULONG_PTR Flags,
  101. IN PIO_COMPLETION_ROUTINE pCompletionRoutine,
  102. IN PVOID pCompletionContext
  103. );
  104. NTSTATUS
  105. UcpCloseRawConnection(
  106. IN PVOID pConn,
  107. IN BOOLEAN Abortive,
  108. IN PUL_COMPLETION_ROUTINE pCompletionRoutine,
  109. IN PVOID pCompletionContext);
  110. NTSTATUS
  111. UcCloseRawFilterConnection(
  112. IN PVOID pConn,
  113. IN BOOLEAN Abortive,
  114. IN PUL_COMPLETION_ROUTINE pCompletionRoutine,
  115. IN PVOID pCompletionContext
  116. );
  117. VOID
  118. UcDisconnectRawFilterConnection(
  119. IN PVOID pConnectionContext
  120. );
  121. NTSTATUS
  122. UcpSendRawData(
  123. IN PVOID pConnectionContext,
  124. IN PMDL pMdlChain,
  125. IN ULONG Length,
  126. IN PUL_IRP_CONTEXT pIrpContext,
  127. IN BOOLEAN InitiateDisconnect
  128. );
  129. NTSTATUS
  130. UcpReceiveRawData(
  131. IN PVOID pConnectionContext,
  132. IN PVOID pBuffer,
  133. IN ULONG BufferLength,
  134. IN PUL_COMPLETION_ROUTINE pCompletionRoutine,
  135. IN PVOID pCompletionContext
  136. );
  137. NTSTATUS
  138. UcpRestartReceive(
  139. IN PDEVICE_OBJECT pDeviceObject,
  140. IN PIRP pIrp,
  141. IN PVOID pContext
  142. );
  143. NTSTATUS
  144. UcpRestartClientReceive(
  145. IN PDEVICE_OBJECT pDeviceObject,
  146. IN PIRP pIrp,
  147. IN PVOID pContext
  148. );
  149. //
  150. // Public Prototypes
  151. //
  152. ULONG
  153. UcSetFlag(
  154. IN OUT PLONG ConnFlag,
  155. IN LONG NewFlag
  156. );
  157. NTSTATUS
  158. UcClientConnect(
  159. IN PUC_CLIENT_CONNECTION pConnection,
  160. IN PIRP pIrp
  161. );
  162. NTSTATUS
  163. UcSendData(
  164. IN PUC_CLIENT_CONNECTION pConnection,
  165. IN PMDL pMdlChain,
  166. IN ULONG Length,
  167. IN PUL_COMPLETION_ROUTINE pCompletionRoutine,
  168. IN PVOID pCompletionContext,
  169. IN PIRP pIrp,
  170. IN BOOLEAN RawSend
  171. );
  172. NTSTATUS
  173. UcReceiveData(
  174. IN PVOID pConnectionContext,
  175. IN PVOID pBuffer,
  176. IN ULONG BufferLength,
  177. IN PUL_COMPLETION_ROUTINE pCompletionRoutine,
  178. IN PVOID pCompletionContext
  179. );
  180. NTSTATUS
  181. UcpBuildTdiReceiveBuffer(
  182. IN PUX_TDI_OBJECT pTdiObject,
  183. IN PUC_CLIENT_CONNECTION pConnection,
  184. OUT PIRP *pIrp
  185. );
  186. NTSTATUS
  187. UcpReceiveExpeditedHandler(
  188. IN PVOID pTdiEventContext,
  189. IN CONNECTION_CONTEXT ConnectionContext,
  190. IN ULONG ReceiveFlags,
  191. IN ULONG BytesIndicated,
  192. IN ULONG BytesAvailable,
  193. OUT ULONG *pBytesTaken,
  194. IN PVOID pTsdu,
  195. OUT PIRP *pIrp
  196. );
  197. #endif // _UCTDI_H_