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

/*++
Copyright (c) 2000-2002 Microsoft Corporation
Module Name:
uctdi.h
Abstract:
This file contains the header defintions for the HTTP.SYS TDI interface
code.
Author:
Henry Sanders (henrysa) 07-Aug-2000
Revision History:
--*/
#ifndef _UCTDI_H_
#define _UCTDI_H_
//
// Forward references.
//
typedef struct _UC_CLIENT_CONNECTION *PUC_CLIENT_CONNECTION;
typedef union _UC_CONNECTION_FLAGS UC_CONNECTION_FLAGS;
//
// Private constants.
//
//
// Private types.
//
//
NTSTATUS
UcCloseConnection(
IN PVOID pConnectionContext,
IN BOOLEAN AbortiveDisconnect,
IN PUL_COMPLETION_ROUTINE pCompletionRoutine,
IN PVOID pCompletionContext,
IN NTSTATUS Status
);
NTSTATUS
UcpRestartSendData(
IN PDEVICE_OBJECT pDeviceObject,
IN PIRP pIrp,
IN PVOID pContext
);
NTSTATUS
UcpBeginAbort(
IN PUC_CLIENT_CONNECTION pConnection,
IN PUL_COMPLETION_ROUTINE pCompletionRoutine,
IN PVOID pCompletionContext
);
NTSTATUS
UcpBeginDisconnect(
IN PUC_CLIENT_CONNECTION pConnection,
IN PUL_COMPLETION_ROUTINE pCompletionRoutine,
IN PVOID pCompletionContext
);
NTSTATUS
UcpRestartAbort(
IN PDEVICE_OBJECT pDeviceObject,
IN PIRP pIrp,
IN PVOID pContext
);
NTSTATUS
UcpRestartDisconnect(
IN PDEVICE_OBJECT pDeviceObject,
IN PIRP pIrp,
IN PVOID pContext
);
NTSTATUS
UcpConnectComplete(
PDEVICE_OBJECT pDeviceObject,
PIRP pIrp,
PVOID Context
);
NTSTATUS
UcpSendRequestComplete(
PDEVICE_OBJECT pDeviceObject,
PIRP pIrp,
PVOID Context
);
NTSTATUS
UcpTdiReceiveHandler(
IN PVOID pTdiEventContext,
IN CONNECTION_CONTEXT ConnectionContext,
IN ULONG ReceiveFlags,
IN ULONG BytesIndicated,
IN ULONG BytesAvailable,
OUT ULONG *pBytesTaken,
IN PVOID pTsdu,
OUT PIRP *pIrp
);
NTSTATUS
UcpTdiDisconnectHandler(
IN PVOID pTdiEventContext,
IN CONNECTION_CONTEXT ConnectionContext,
IN LONG DisconnectDataLength,
IN PVOID pDisconnectData,
IN LONG DisconnectInformationLength,
IN PVOID pDisconnectInformation,
IN ULONG DisconnectFlags
);
PIRP
UcpCreateDisconnectIrp(
IN PUX_TDI_OBJECT pTdiObject,
IN ULONG_PTR Flags,
IN PIO_COMPLETION_ROUTINE pCompletionRoutine,
IN PVOID pCompletionContext
);
NTSTATUS
UcpCloseRawConnection(
IN PVOID pConn,
IN BOOLEAN Abortive,
IN PUL_COMPLETION_ROUTINE pCompletionRoutine,
IN PVOID pCompletionContext);
NTSTATUS
UcCloseRawFilterConnection(
IN PVOID pConn,
IN BOOLEAN Abortive,
IN PUL_COMPLETION_ROUTINE pCompletionRoutine,
IN PVOID pCompletionContext
);
VOID
UcDisconnectRawFilterConnection(
IN PVOID pConnectionContext
);
NTSTATUS
UcpSendRawData(
IN PVOID pConnectionContext,
IN PMDL pMdlChain,
IN ULONG Length,
IN PUL_IRP_CONTEXT pIrpContext,
IN BOOLEAN InitiateDisconnect
);
NTSTATUS
UcpReceiveRawData(
IN PVOID pConnectionContext,
IN PVOID pBuffer,
IN ULONG BufferLength,
IN PUL_COMPLETION_ROUTINE pCompletionRoutine,
IN PVOID pCompletionContext
);
NTSTATUS
UcpRestartReceive(
IN PDEVICE_OBJECT pDeviceObject,
IN PIRP pIrp,
IN PVOID pContext
);
NTSTATUS
UcpRestartClientReceive(
IN PDEVICE_OBJECT pDeviceObject,
IN PIRP pIrp,
IN PVOID pContext
);
//
// Public Prototypes
//
ULONG
UcSetFlag(
IN OUT PLONG ConnFlag,
IN LONG NewFlag
);
NTSTATUS
UcClientConnect(
IN PUC_CLIENT_CONNECTION pConnection,
IN PIRP pIrp
);
NTSTATUS
UcSendData(
IN PUC_CLIENT_CONNECTION pConnection,
IN PMDL pMdlChain,
IN ULONG Length,
IN PUL_COMPLETION_ROUTINE pCompletionRoutine,
IN PVOID pCompletionContext,
IN PIRP pIrp,
IN BOOLEAN RawSend
);
NTSTATUS
UcReceiveData(
IN PVOID pConnectionContext,
IN PVOID pBuffer,
IN ULONG BufferLength,
IN PUL_COMPLETION_ROUTINE pCompletionRoutine,
IN PVOID pCompletionContext
);
NTSTATUS
UcpBuildTdiReceiveBuffer(
IN PUX_TDI_OBJECT pTdiObject,
IN PUC_CLIENT_CONNECTION pConnection,
OUT PIRP *pIrp
);
NTSTATUS
UcpReceiveExpeditedHandler(
IN PVOID pTdiEventContext,
IN CONNECTION_CONTEXT ConnectionContext,
IN ULONG ReceiveFlags,
IN ULONG BytesIndicated,
IN ULONG BytesAvailable,
OUT ULONG *pBytesTaken,
IN PVOID pTsdu,
OUT PIRP *pIrp
);
#endif // _UCTDI_H_