/*++

Copyright (c) 1996-1999  Microsoft Corporation

Module Name:

    recv.h

Abstract:

    defines for packet receive routines

Author:

    Charlie Wickham (charlwi) 08-May-1996

Revision History:

--*/

#ifndef _RECV_
#define _RECV_

/* Prototypes */ /* Generated by Emacs 19.17.0 on Thu May 09 10:34:42 1996 */

/*++

Routine Description:

    Called by the NIC to indicate a data as an NDIS_PACKET. Switch to miniport mode
    and continue the packet along its way

Arguments:

    See the DDK...

Return Values:

    None

--*/

INT
ClReceivePacket(
	IN	NDIS_HANDLE				ProtocolBindingContext,
	IN	PNDIS_PACKET			Packet
	);

/*++

Routine Description:



Arguments:

    See the DDK...

Return Values:

    None

--*/

VOID
MpReturnPacket(
	IN	NDIS_HANDLE				MiniportAdapterContext,
	IN	PNDIS_PACKET			Packet
	);

/*++

Routine Description:

    Called by NIC to notify protocol of incoming data

Arguments:

    See the DDK...

Return Values:

    None

--*/

NDIS_STATUS
ClReceiveIndication(
	IN	NDIS_HANDLE				ProtocolBindingContext,
	IN	NDIS_HANDLE				MacReceiveContext,
	IN	PVOID					HeaderBuffer,
	IN	UINT					HeaderBufferSize,
	IN	PVOID					LookAheadBuffer,
	IN	UINT					LookaheadBufferSize,
	IN	UINT					PacketSize
	);

/*++

Routine Description:

    Called by NIC via NdisIndicateReceiveComplete

Arguments:

    See the DDK...

Return Values:

    None

--*/

VOID
ClReceiveComplete(
	IN	NDIS_HANDLE				ProtocolBindingContext
	);

/*++

Routine Description:



Arguments:

    See the DDK...

Return Values:

    None

--*/

NDIS_STATUS
MpTransferData(
	OUT PNDIS_PACKET			Packet,
	OUT PUINT					BytesTransferred,
	IN	NDIS_HANDLE				MiniportAdapterContext,
	IN	NDIS_HANDLE				MiniportReceiveContext,
	IN	UINT					ByteOffset,
	IN	UINT					BytesToTransfer
	);

/*++

Routine Description:

    Completion routine for NdisTransferData
Arguments:

    See the DDK...

Return Values:

    None

--*/

VOID
ClTransferDataComplete(
    IN  NDIS_HANDLE     ProtocolBindingContext,
    IN  PNDIS_PACKET    pNdisPacket,
    IN  NDIS_STATUS     Status,
    IN  UINT            BytesTransferred
    );

UINT
ClCoReceivePacket(
    IN  NDIS_HANDLE ProtocolBindingContext,
    IN  NDIS_HANDLE ProtocolVcContext,
    IN  PNDIS_PACKET Packet
    );

/* End Prototypes */

#endif /* _RECV_ */

/* end recv.h */