182 lines
4.1 KiB
C
182 lines
4.1 KiB
C
|
/*++
|
|||
|
|
|||
|
Copyright (c) 1995 Microsoft Corporation
|
|||
|
|
|||
|
Module Name:
|
|||
|
|
|||
|
ntos\tdi\isn\fwd\rcvind.h
|
|||
|
|
|||
|
Abstract:
|
|||
|
Receive indication processing
|
|||
|
|
|||
|
Author:
|
|||
|
|
|||
|
Vadim Eydelman
|
|||
|
|
|||
|
Revision History:
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
#ifndef _IPXFWD_RCVIND
|
|||
|
#define _IPXFWD_RCVIND
|
|||
|
|
|||
|
// Doesn't allow accepting packets (for routing) from dial-in clients
|
|||
|
extern BOOLEAN ThisMachineOnly;
|
|||
|
|
|||
|
/*++
|
|||
|
*******************************************************************
|
|||
|
I n i t i a l i z e R e c v Q u e u e
|
|||
|
|
|||
|
Routine Description:
|
|||
|
Initializes recv queue
|
|||
|
Arguments:
|
|||
|
None
|
|||
|
Return Value:
|
|||
|
None
|
|||
|
|
|||
|
*******************************************************************
|
|||
|
--*/
|
|||
|
//VOID
|
|||
|
//DeleteRecvQueue (
|
|||
|
// void
|
|||
|
// )
|
|||
|
#define InitializeRecvQueue() { \
|
|||
|
}
|
|||
|
|
|||
|
/*++
|
|||
|
*******************************************************************
|
|||
|
D e l e t e R e c v Q u e u e
|
|||
|
|
|||
|
Routine Description:
|
|||
|
Deletes recv queue
|
|||
|
Arguments:
|
|||
|
None
|
|||
|
Return Value:
|
|||
|
None
|
|||
|
|
|||
|
*******************************************************************
|
|||
|
--*/
|
|||
|
VOID
|
|||
|
DeleteRecvQueue (
|
|||
|
void
|
|||
|
);
|
|||
|
|
|||
|
/*++
|
|||
|
*******************************************************************
|
|||
|
F w R e c e i v e
|
|||
|
|
|||
|
Routine Description:
|
|||
|
Called by the IPX stack to indicate that the IPX packet was
|
|||
|
received by the NIC dirver. Only external destined packets are
|
|||
|
indicated by this routine (with the exception of Netbios boradcasts
|
|||
|
that indicated both for internal and external handlers)
|
|||
|
Arguments:
|
|||
|
MacBindingHandle - handle of NIC driver
|
|||
|
MaxReceiveContext - NIC driver context
|
|||
|
Context - forwarder context associated with
|
|||
|
the NIC (interface block pointer)
|
|||
|
RemoteAddress - sender's address
|
|||
|
MacOptions -
|
|||
|
LookaheadBuffer - packet lookahead buffer that contains complete
|
|||
|
IPX header
|
|||
|
LookaheadBufferSize - its size (at least 30 bytes)
|
|||
|
LookaheadBufferOffset - offset of lookahead buffer in the physical
|
|||
|
packet
|
|||
|
Return Value:
|
|||
|
None
|
|||
|
|
|||
|
*******************************************************************
|
|||
|
--*/
|
|||
|
BOOLEAN
|
|||
|
IpxFwdReceive (
|
|||
|
NDIS_HANDLE MacBindingHandle,
|
|||
|
NDIS_HANDLE MacReceiveContext,
|
|||
|
ULONG_PTR Context,
|
|||
|
PIPX_LOCAL_TARGET RemoteAddress,
|
|||
|
ULONG MacOptions,
|
|||
|
PUCHAR LookaheadBuffer,
|
|||
|
UINT LookaheadBufferSize,
|
|||
|
UINT LookaheadBufferOffset,
|
|||
|
UINT PacketSize,
|
|||
|
PMDL pMdl
|
|||
|
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
/*++
|
|||
|
*******************************************************************
|
|||
|
F w T r a n s f e r D a t a C o m p l e t e
|
|||
|
|
|||
|
Routine Description:
|
|||
|
Called by the IPX stack when NIC driver completes data transger.
|
|||
|
Arguments:
|
|||
|
pktDscr - handle of NIC driver
|
|||
|
status - result of the transfer
|
|||
|
bytesTransferred - number of bytest trasferred
|
|||
|
Return Value:
|
|||
|
None
|
|||
|
|
|||
|
*******************************************************************
|
|||
|
--*/
|
|||
|
VOID
|
|||
|
IpxFwdTransferDataComplete (
|
|||
|
PNDIS_PACKET pktDscr,
|
|||
|
NDIS_STATUS status,
|
|||
|
UINT bytesTransferred
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
/*++
|
|||
|
*******************************************************************
|
|||
|
F w T r a n s f e r D a t a C o m p l e t e
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
This routine receives control from the IPX driver after one or
|
|||
|
more receive operations have completed and no receive is in progress.
|
|||
|
It is called under less severe time constraints than IpxFwdReceive.
|
|||
|
It is used to process netbios queue
|
|||
|
|
|||
|
Arguments:
|
|||
|
None
|
|||
|
Return Value:
|
|||
|
None
|
|||
|
*******************************************************************
|
|||
|
--*/
|
|||
|
VOID
|
|||
|
IpxFwdReceiveComplete (
|
|||
|
USHORT NicId
|
|||
|
);
|
|||
|
|
|||
|
/*++
|
|||
|
*******************************************************************
|
|||
|
F w R e c e i v e
|
|||
|
|
|||
|
Routine Description:
|
|||
|
Called by the IPX stack to indicate that the IPX packet destined
|
|||
|
to local client was received by the NIC dirver.
|
|||
|
Arguments:
|
|||
|
Context - forwarder context associated with
|
|||
|
the NIC (interface block pointer)
|
|||
|
RemoteAddress - sender's address
|
|||
|
LookaheadBuffer - packet lookahead buffer that contains complete
|
|||
|
IPX header
|
|||
|
LookaheadBufferSize - its size (at least 30 bytes)
|
|||
|
Return Value:
|
|||
|
STATUS_SUCCESS - the packet will be delivered to local destination
|
|||
|
STATUS_UNSUCCESSFUL - the packet will be dropped
|
|||
|
|
|||
|
*******************************************************************
|
|||
|
--*/
|
|||
|
NTSTATUS
|
|||
|
IpxFwdInternalReceive (
|
|||
|
IN ULONG_PTR FwdAdapterContext,
|
|||
|
IN PIPX_LOCAL_TARGET RemoteAddress,
|
|||
|
IN PUCHAR LookAheadBuffer,
|
|||
|
IN UINT LookAheadBufferSize
|
|||
|
);
|
|||
|
|
|||
|
#endif
|
|||
|
|
|||
|
|