/*++ Copyright (c) 1989-2001 Microsoft Corporation Module Name: tdihndlr.h Abstract: TDI handlers Author: Jiandong Ruan Revision History: --*/ #ifndef __TDIHNDLR_H__ #define __TDIHNDLR_H__ NTSTATUS SmbTdiConnectHandler( IN PSMB_DEVICE DeviceObject, IN LONG RemoteAddressLength, IN PTRANSPORT_ADDRESS RemoteAddress, IN LONG UserDataLength, IN PVOID UserData, IN LONG OptionsLength, IN PVOID Options, OUT CONNECTION_CONTEXT *ConnectionContext, OUT PIRP *AcceptIrp ); NTSTATUS CommonDisconnectHandler ( IN PSMB_DEVICE DeviceObject, IN PSMB_CONNECT ConnectObject, IN ULONG DisconnectFlags ); NTSTATUS SmbTdiDisconnectHandler ( IN PSMB_DEVICE DeviceObject, IN PSMB_TCP_CONNECT TcpConnect, IN LONG DisconnectDataLength, IN PVOID DisconnectData, IN LONG DisconnectInformationLength, IN PVOID DisconnectInformation, IN ULONG DisconnectFlags ); NTSTATUS Indicate ( IN PSMB_DEVICE DeviceObject, IN PSMB_CONNECT ConnectObject, IN ULONG ReceiveFlags, IN LONG BytesIndicated, IN LONG BytesAvailable, OUT LONG *BytesTaken, IN PVOID Tsdu, OUT PIRP *Irp ); NTSTATUS WaitingHeader ( IN PSMB_DEVICE DeviceObject, IN PSMB_CONNECT ConnectObject, IN ULONG ReceiveFlags, IN LONG BytesIndicated, IN LONG BytesAvailable, OUT LONG *BytesTaken, IN PVOID Tsdu, OUT PIRP *Irp ); NTSTATUS SmbPartialRcv ( IN PSMB_DEVICE DeviceObject, IN PSMB_CONNECT ConnectObject, IN ULONG ReceiveFlags, IN LONG BytesIndicated, IN LONG BytesAvailable, OUT LONG *BytesTaken, IN PVOID Tsdu, OUT PIRP *Irp ); NTSTATUS SmbTdiReceiveHandler ( IN PSMB_DEVICE DeviceObject, IN PSMB_TCP_CONNECT TcpConnect, IN ULONG ReceiveFlags, IN LONG BytesIndicated, IN LONG BytesAvailable, OUT LONG *BytesTaken, IN PVOID Tsdu, OUT PIRP *Irp ); #ifdef NO_ZERO_BYTE_INDICATE NTSTATUS TdiReceiveHandlerRdr ( IN PSMB_DEVICE DeviceObject, IN PSMB_TCP_CONNECT TcpConnect, IN ULONG ReceiveFlags, IN LONG BytesIndicated, IN LONG BytesAvailable, OUT LONG *BytesTaken, IN PVOID Tsdu, OUT PIRP *Irp ); #endif NTSTATUS TdiSetEventHandler( PFILE_OBJECT FileObject, ULONG EventType, PVOID EventHandler, PVOID Context ); NTSTATUS SmbSynchTdiCompletion( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context ); NTSTATUS SmbFillIrp( IN PSMB_CONNECT ConnectObject, IN PVOID Tsdu, IN LONG BytesIndicated, OUT LONG *BytesTaken ); VOID SmbGetHeaderDpc( IN PKDPC Dpc, IN PSMB_CONNECT ConnectObject, IN PVOID SystemArgument1, IN PVOID SystemArgument2 ); VOID SmbPrepareReceiveIrp( IN PSMB_CONNECT ConnectObject ); #if DBG BOOL IsValidPartialRcvState( IN PSMB_CONNECT ConnectObject ); #endif #endif