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

/*++
Copyright (c) 2000-2002 Microsoft Corporation
Module Name:
ucrcv.h
Abstract:
This file contains the header defintions for the HTTP.SYS receive interface
code.
Author:
Rajesh Sundaram (rajeshsu)
Revision History:
--*/
#ifndef _UCRCV_H_
#define _UCRCV_H_
typedef enum _UC_DATACHUNK_RETURN
{
UcDataChunkCopyPartial = 1,
UcDataChunkCopyAll,
UcDataChunkCopyMax
} UC_DATACHUNK_RETURN;
NTSTATUS
UcpCarveDataChunk(
IN PHTTP_RESPONSE pResponse,
IN PUC_HTTP_REQUEST pRequest,
IN PUCHAR pIndication,
IN ULONG BytesIndicated,
IN ULONG AlignLength
);
UC_DATACHUNK_RETURN
UcpCopyEntityToDataChunk(
IN PHTTP_RESPONSE pResponse,
IN PUC_HTTP_REQUEST pRequest,
IN ULONG BytesToTake,
IN ULONG BytesIndicated,
IN PUCHAR pIndication,
OUT PULONG pBytesTaken
);
VOID
UcpCompleteReceiveResponseIrp(
IN PUC_HTTP_REQUEST pRequest,
IN KIRQL OldIrql
);
VOID
UcpCopyHttpResponseHeaders(
PHTTP_RESPONSE pNewResponse,
PHTTP_RESPONSE pOldResponse,
PUCHAR *ppBufferHead,
PUCHAR *ppBufferTail
);
NTSTATUS
UcpExpandResponseBuffer(
IN PUC_HTTP_REQUEST pRequest,
IN ULONG BytesIndicated,
IN ULONG ResponseBufferFlags
);
NTSTATUS
UcpGetResponseBuffer(
IN PUC_HTTP_REQUEST pRequest,
IN ULONG BytesIndicated,
IN ULONG ResponseBufferFlags
);
VOID
UcpMergeIndications(
IN PUC_CLIENT_CONNECTION pConnection,
IN PUCHAR pIndication,
IN ULONG BytesIndicated,
OUT PUCHAR Indication[2],
OUT ULONG IndicationLength[2],
OUT PULONG IndicationCount
);
NTSTATUS
UcpParseHttpResponse(
PUC_HTTP_REQUEST pRequest,
PUCHAR pIndicatedBuffer,
ULONG BytesIndicated,
PULONG BytesTaken
);
NTSTATUS
UcHandleResponse(
IN PVOID pListeningContext,
IN PVOID pConnectionContext,
IN PVOID pIndicatedBuffer,
IN ULONG BytesIndicated,
IN ULONG UnreceivedLength,
OUT PULONG pBytesTaken
);
VOID
UcpHandleConnectVerbFailure(
IN PUC_CLIENT_CONNECTION pConnection,
OUT PUCHAR *pIndication,
OUT PULONG BytesIndicated,
IN ULONG BytesTaken
);
VOID
UcpHandleParsedRequest(
IN PUC_HTTP_REQUEST pRequest,
OUT PUCHAR *pIndication,
OUT PULONG BytesIndicated,
IN ULONG BytesTaken
);
BOOLEAN
UcpReferenceForReceive(
IN PUC_HTTP_REQUEST pRequest
);
VOID
UcpDereferenceForReceive(
IN PUC_HTTP_REQUEST pRequest
);
#endif // _UCRCV_H_