|
|
/*++
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_
|