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.
181 lines
4.3 KiB
181 lines
4.3 KiB
/*++
|
|
|
|
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
|
|
|
|
|