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
166 lines
5.2 KiB
|
|
/*++
|
|
|
|
Copyright (c) 1997-1999 Microsoft Corporation
|
|
|
|
Module Name :
|
|
|
|
iisextp.h
|
|
|
|
Abstract:
|
|
|
|
This module contains private HTTP server extension info
|
|
|
|
Environment:
|
|
|
|
Win32 User Mode
|
|
|
|
--*/
|
|
|
|
#ifndef _IISEXTP_H_
|
|
#define _IISEXTP_H_
|
|
|
|
#include "iisext.h"
|
|
|
|
// available
|
|
// #define ??? (HSE_REQ_END_RESERVED+4)
|
|
// no longer supported
|
|
#define HSE_REQ_GET_CERT_INFO (HSE_REQ_END_RESERVED+9)
|
|
// will be public in IIS 5.0
|
|
#define HSE_REQ_EXECUTE_CHILD (HSE_REQ_END_RESERVED+13)
|
|
#define HSE_REQ_GET_EXECUTE_FLAGS (HSE_REQ_END_RESERVED+19)
|
|
// UNDONE: should be public after IIS 5.0 BETA 2
|
|
#define HSE_REQ_GET_VIRTUAL_PATH_TOKEN (HSE_REQ_END_RESERVED+21)
|
|
// This is the old vecotr send for ASP.Net's use
|
|
#define HSE_REQ_VECTOR_SEND_DEPRECATED (HSE_REQ_END_RESERVED+22)
|
|
#define HSE_REQ_GET_CUSTOM_ERROR_PAGE (HSE_REQ_END_RESERVED+29)
|
|
#define HSE_REQ_GET_UNICODE_VIRTUAL_PATH_TOKEN (HSE_REQ_END_RESERVED+31)
|
|
#define HSE_REQ_UNICODE_NORMALIZE_URL (HSE_REQ_END_RESERVED+33)
|
|
#define HSE_REQ_ADD_FRAGMENT_TO_CACHE (HSE_REQ_END_RESERVED+34)
|
|
#define HSE_REQ_READ_FRAGMENT_FROM_CACHE (HSE_REQ_END_RESERVED+35)
|
|
#define HSE_REQ_REMOVE_FRAGMENT_FROM_CACHE (HSE_REQ_END_RESERVED+36)
|
|
#define HSE_REQ_GET_METADATA_PROPERTY (HSE_REQ_END_RESERVED+39)
|
|
#define HSE_REQ_GET_CACHE_INVALIDATION_CALLBACK (HSE_REQ_END_RESERVED+40)
|
|
// will be public in IIS 5.0
|
|
|
|
//
|
|
// Flags for HSE_REQ_EXECUTE_CHILD function
|
|
//
|
|
|
|
# define HSE_EXEC_NO_HEADERS 0x00000001 // Don't send any
|
|
// headers of child
|
|
# define HSE_EXEC_REDIRECT_ONLY 0x00000002 // Don't send any
|
|
// headers of child
|
|
// but send redirect
|
|
// message
|
|
# define HSE_EXEC_COMMAND 0x00000004 // Treat as shell
|
|
// command instead of
|
|
// URL
|
|
# define HSE_EXEC_NO_ISA_WILDCARDS 0x00000010 // Ignore wildcards in
|
|
// ISAPI mapping when
|
|
// executing child
|
|
# define HSE_EXEC_CUSTOM_ERROR 0x00000020 // URL being sent is a
|
|
// custom error
|
|
//
|
|
// This is the deprecated structure for ASP.Net's use
|
|
//
|
|
|
|
//
|
|
// element of the vector
|
|
//
|
|
|
|
typedef struct _HSE_VECTOR_ELEMENT_DEPRECATED
|
|
{
|
|
PVOID pBuffer; // The buffer to be sent
|
|
|
|
HANDLE hFile; // The handle to read the data from
|
|
// Note: both pBuffer and hFile should not be non-null
|
|
|
|
ULONGLONG cbOffset; // Offset from the start of hFile
|
|
|
|
ULONGLONG cbSize; // Number of bytes to send
|
|
} HSE_VECTOR_ELEMENT_DEPRECATED, *LPHSE_VECTOR_ELEMENT_DEPRECATED;
|
|
|
|
//
|
|
// The whole vector to be passed to the ServerSupportFunction
|
|
//
|
|
|
|
typedef struct _HSE_RESPONSE_VECTOR_DEPRECATED
|
|
{
|
|
DWORD dwFlags; // combination of HSE_IO_* flags
|
|
|
|
LPSTR pszStatus; // Status line to send like "200 OK"
|
|
LPSTR pszHeaders; // Headers to send
|
|
|
|
DWORD nElementCount; // Number of HSE_VECTOR_ELEMENT_DEPRECATED's
|
|
LPHSE_VECTOR_ELEMENT_DEPRECATED lpElementArray; // Pointer to those elements
|
|
} HSE_RESPONSE_VECTOR_DEPRECATED, *LPHSE_RESPONSE_VECTOR_DEPRECATED;
|
|
|
|
#define HSE_VECTOR_ELEMENT_TYPE_FRAGMENT 2
|
|
#include <winsock2.h>
|
|
typedef struct _HSE_SEND_ENTIRE_RESPONSE_INFO {
|
|
|
|
//
|
|
// HTTP header info
|
|
//
|
|
|
|
HSE_SEND_HEADER_EX_INFO HeaderInfo;
|
|
|
|
//
|
|
// Buffers which will be passed to WSASend
|
|
//
|
|
// NOTE: To send an entire response whose data (body)
|
|
// is contained in N buffers, caller must allocate N+1 buffers
|
|
// and fill buffers 1 through N with its data buffers.
|
|
// IIS will fill the extra buffer (buffer 0) with header info.
|
|
//
|
|
|
|
WSABUF * rgWsaBuf; // array of wsa buffers
|
|
DWORD cWsaBuf; // count of wsa buffers
|
|
|
|
//
|
|
// Returned by WSASend
|
|
//
|
|
|
|
DWORD cbWritten;
|
|
|
|
} HSE_SEND_ENTIRE_RESPONSE_INFO, * LPHSE_SEND_ENTIRE_RESPONSE_INFO;
|
|
|
|
typedef struct _HSE_CUSTOM_ERROR_PAGE_INFO {
|
|
|
|
//
|
|
// The Error and SubError to look up
|
|
//
|
|
|
|
DWORD dwError;
|
|
DWORD dwSubError;
|
|
|
|
//
|
|
// Buffer info
|
|
//
|
|
|
|
DWORD dwBufferSize;
|
|
CHAR * pBuffer;
|
|
|
|
//
|
|
// On return, this contains the size of the buffer required
|
|
//
|
|
|
|
DWORD * pdwBufferRequired;
|
|
|
|
//
|
|
// If TRUE on return, then buffer contains a file name
|
|
//
|
|
|
|
BOOL * pfIsFileError;
|
|
|
|
//
|
|
// If FALSE on return, then the body of the custom error
|
|
// should not be sent.
|
|
//
|
|
|
|
BOOL * pfSendErrorBody;
|
|
|
|
} HSE_CUSTOM_ERROR_PAGE_INFO, * LPHSE_CUSTOM_ERROR_PAGE_INFO;
|
|
|
|
#endif // _IISEXTP_H_
|