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.

166 lines
5.2 KiB

  1. /*++
  2. Copyright (c) 1997-1999 Microsoft Corporation
  3. Module Name :
  4. iisextp.h
  5. Abstract:
  6. This module contains private HTTP server extension info
  7. Environment:
  8. Win32 User Mode
  9. --*/
  10. #ifndef _IISEXTP_H_
  11. #define _IISEXTP_H_
  12. #include "iisext.h"
  13. // available
  14. // #define ??? (HSE_REQ_END_RESERVED+4)
  15. // no longer supported
  16. #define HSE_REQ_GET_CERT_INFO (HSE_REQ_END_RESERVED+9)
  17. // will be public in IIS 5.0
  18. #define HSE_REQ_EXECUTE_CHILD (HSE_REQ_END_RESERVED+13)
  19. #define HSE_REQ_GET_EXECUTE_FLAGS (HSE_REQ_END_RESERVED+19)
  20. // UNDONE: should be public after IIS 5.0 BETA 2
  21. #define HSE_REQ_GET_VIRTUAL_PATH_TOKEN (HSE_REQ_END_RESERVED+21)
  22. // This is the old vecotr send for ASP.Net's use
  23. #define HSE_REQ_VECTOR_SEND_DEPRECATED (HSE_REQ_END_RESERVED+22)
  24. #define HSE_REQ_GET_CUSTOM_ERROR_PAGE (HSE_REQ_END_RESERVED+29)
  25. #define HSE_REQ_GET_UNICODE_VIRTUAL_PATH_TOKEN (HSE_REQ_END_RESERVED+31)
  26. #define HSE_REQ_UNICODE_NORMALIZE_URL (HSE_REQ_END_RESERVED+33)
  27. #define HSE_REQ_ADD_FRAGMENT_TO_CACHE (HSE_REQ_END_RESERVED+34)
  28. #define HSE_REQ_READ_FRAGMENT_FROM_CACHE (HSE_REQ_END_RESERVED+35)
  29. #define HSE_REQ_REMOVE_FRAGMENT_FROM_CACHE (HSE_REQ_END_RESERVED+36)
  30. #define HSE_REQ_GET_METADATA_PROPERTY (HSE_REQ_END_RESERVED+39)
  31. #define HSE_REQ_GET_CACHE_INVALIDATION_CALLBACK (HSE_REQ_END_RESERVED+40)
  32. // will be public in IIS 5.0
  33. //
  34. // Flags for HSE_REQ_EXECUTE_CHILD function
  35. //
  36. # define HSE_EXEC_NO_HEADERS 0x00000001 // Don't send any
  37. // headers of child
  38. # define HSE_EXEC_REDIRECT_ONLY 0x00000002 // Don't send any
  39. // headers of child
  40. // but send redirect
  41. // message
  42. # define HSE_EXEC_COMMAND 0x00000004 // Treat as shell
  43. // command instead of
  44. // URL
  45. # define HSE_EXEC_NO_ISA_WILDCARDS 0x00000010 // Ignore wildcards in
  46. // ISAPI mapping when
  47. // executing child
  48. # define HSE_EXEC_CUSTOM_ERROR 0x00000020 // URL being sent is a
  49. // custom error
  50. //
  51. // This is the deprecated structure for ASP.Net's use
  52. //
  53. //
  54. // element of the vector
  55. //
  56. typedef struct _HSE_VECTOR_ELEMENT_DEPRECATED
  57. {
  58. PVOID pBuffer; // The buffer to be sent
  59. HANDLE hFile; // The handle to read the data from
  60. // Note: both pBuffer and hFile should not be non-null
  61. ULONGLONG cbOffset; // Offset from the start of hFile
  62. ULONGLONG cbSize; // Number of bytes to send
  63. } HSE_VECTOR_ELEMENT_DEPRECATED, *LPHSE_VECTOR_ELEMENT_DEPRECATED;
  64. //
  65. // The whole vector to be passed to the ServerSupportFunction
  66. //
  67. typedef struct _HSE_RESPONSE_VECTOR_DEPRECATED
  68. {
  69. DWORD dwFlags; // combination of HSE_IO_* flags
  70. LPSTR pszStatus; // Status line to send like "200 OK"
  71. LPSTR pszHeaders; // Headers to send
  72. DWORD nElementCount; // Number of HSE_VECTOR_ELEMENT_DEPRECATED's
  73. LPHSE_VECTOR_ELEMENT_DEPRECATED lpElementArray; // Pointer to those elements
  74. } HSE_RESPONSE_VECTOR_DEPRECATED, *LPHSE_RESPONSE_VECTOR_DEPRECATED;
  75. #define HSE_VECTOR_ELEMENT_TYPE_FRAGMENT 2
  76. #include <winsock2.h>
  77. typedef struct _HSE_SEND_ENTIRE_RESPONSE_INFO {
  78. //
  79. // HTTP header info
  80. //
  81. HSE_SEND_HEADER_EX_INFO HeaderInfo;
  82. //
  83. // Buffers which will be passed to WSASend
  84. //
  85. // NOTE: To send an entire response whose data (body)
  86. // is contained in N buffers, caller must allocate N+1 buffers
  87. // and fill buffers 1 through N with its data buffers.
  88. // IIS will fill the extra buffer (buffer 0) with header info.
  89. //
  90. WSABUF * rgWsaBuf; // array of wsa buffers
  91. DWORD cWsaBuf; // count of wsa buffers
  92. //
  93. // Returned by WSASend
  94. //
  95. DWORD cbWritten;
  96. } HSE_SEND_ENTIRE_RESPONSE_INFO, * LPHSE_SEND_ENTIRE_RESPONSE_INFO;
  97. typedef struct _HSE_CUSTOM_ERROR_PAGE_INFO {
  98. //
  99. // The Error and SubError to look up
  100. //
  101. DWORD dwError;
  102. DWORD dwSubError;
  103. //
  104. // Buffer info
  105. //
  106. DWORD dwBufferSize;
  107. CHAR * pBuffer;
  108. //
  109. // On return, this contains the size of the buffer required
  110. //
  111. DWORD * pdwBufferRequired;
  112. //
  113. // If TRUE on return, then buffer contains a file name
  114. //
  115. BOOL * pfIsFileError;
  116. //
  117. // If FALSE on return, then the body of the custom error
  118. // should not be sent.
  119. //
  120. BOOL * pfSendErrorBody;
  121. } HSE_CUSTOM_ERROR_PAGE_INFO, * LPHSE_CUSTOM_ERROR_PAGE_INFO;
  122. #endif // _IISEXTP_H_