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.

136 lines
2.9 KiB

  1. /*++
  2. Copyright (c) 2000-2002 Microsoft Corporation
  3. Module Name:
  4. ucrcv.h
  5. Abstract:
  6. This file contains the header defintions for the HTTP.SYS receive interface
  7. code.
  8. Author:
  9. Rajesh Sundaram (rajeshsu)
  10. Revision History:
  11. --*/
  12. #ifndef _UCRCV_H_
  13. #define _UCRCV_H_
  14. typedef enum _UC_DATACHUNK_RETURN
  15. {
  16. UcDataChunkCopyPartial = 1,
  17. UcDataChunkCopyAll,
  18. UcDataChunkCopyMax
  19. } UC_DATACHUNK_RETURN;
  20. NTSTATUS
  21. UcpCarveDataChunk(
  22. IN PHTTP_RESPONSE pResponse,
  23. IN PUC_HTTP_REQUEST pRequest,
  24. IN PUCHAR pIndication,
  25. IN ULONG BytesIndicated,
  26. IN ULONG AlignLength
  27. );
  28. UC_DATACHUNK_RETURN
  29. UcpCopyEntityToDataChunk(
  30. IN PHTTP_RESPONSE pResponse,
  31. IN PUC_HTTP_REQUEST pRequest,
  32. IN ULONG BytesToTake,
  33. IN ULONG BytesIndicated,
  34. IN PUCHAR pIndication,
  35. OUT PULONG pBytesTaken
  36. );
  37. VOID
  38. UcpCompleteReceiveResponseIrp(
  39. IN PUC_HTTP_REQUEST pRequest,
  40. IN KIRQL OldIrql
  41. );
  42. VOID
  43. UcpCopyHttpResponseHeaders(
  44. PHTTP_RESPONSE pNewResponse,
  45. PHTTP_RESPONSE pOldResponse,
  46. PUCHAR *ppBufferHead,
  47. PUCHAR *ppBufferTail
  48. );
  49. NTSTATUS
  50. UcpExpandResponseBuffer(
  51. IN PUC_HTTP_REQUEST pRequest,
  52. IN ULONG BytesIndicated,
  53. IN ULONG ResponseBufferFlags
  54. );
  55. NTSTATUS
  56. UcpGetResponseBuffer(
  57. IN PUC_HTTP_REQUEST pRequest,
  58. IN ULONG BytesIndicated,
  59. IN ULONG ResponseBufferFlags
  60. );
  61. VOID
  62. UcpMergeIndications(
  63. IN PUC_CLIENT_CONNECTION pConnection,
  64. IN PUCHAR pIndication,
  65. IN ULONG BytesIndicated,
  66. OUT PUCHAR Indication[2],
  67. OUT ULONG IndicationLength[2],
  68. OUT PULONG IndicationCount
  69. );
  70. NTSTATUS
  71. UcpParseHttpResponse(
  72. PUC_HTTP_REQUEST pRequest,
  73. PUCHAR pIndicatedBuffer,
  74. ULONG BytesIndicated,
  75. PULONG BytesTaken
  76. );
  77. NTSTATUS
  78. UcHandleResponse(
  79. IN PVOID pListeningContext,
  80. IN PVOID pConnectionContext,
  81. IN PVOID pIndicatedBuffer,
  82. IN ULONG BytesIndicated,
  83. IN ULONG UnreceivedLength,
  84. OUT PULONG pBytesTaken
  85. );
  86. VOID
  87. UcpHandleConnectVerbFailure(
  88. IN PUC_CLIENT_CONNECTION pConnection,
  89. OUT PUCHAR *pIndication,
  90. OUT PULONG BytesIndicated,
  91. IN ULONG BytesTaken
  92. );
  93. VOID
  94. UcpHandleParsedRequest(
  95. IN PUC_HTTP_REQUEST pRequest,
  96. OUT PUCHAR *pIndication,
  97. OUT PULONG BytesIndicated,
  98. IN ULONG BytesTaken
  99. );
  100. BOOLEAN
  101. UcpReferenceForReceive(
  102. IN PUC_HTTP_REQUEST pRequest
  103. );
  104. VOID
  105. UcpDereferenceForReceive(
  106. IN PUC_HTTP_REQUEST pRequest
  107. );
  108. #endif // _UCRCV_H_