652 lines
8.4 KiB
C
652 lines
8.4 KiB
C
|
// prototypes
|
||
|
|
||
|
NTSTATUS
|
||
|
ArapProcessIoctl(
|
||
|
IN PIRP pIrp
|
||
|
);
|
||
|
|
||
|
|
||
|
BOOLEAN
|
||
|
ArapAcceptIrp(
|
||
|
IN PIRP pIrp,
|
||
|
IN ULONG IoControlCode,
|
||
|
IN BOOLEAN *pfDerefDefPort
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapCancelIrp(
|
||
|
IN PIRP pIrp
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapGetSelectIrp(
|
||
|
IN PIRP *ppIrp
|
||
|
);
|
||
|
|
||
|
|
||
|
NTSTATUS
|
||
|
ArapExchangeParms(
|
||
|
IN PIRP pIrp
|
||
|
);
|
||
|
|
||
|
|
||
|
NTSTATUS
|
||
|
ArapConnect(
|
||
|
IN PIRP pIrp,
|
||
|
IN ULONG IoControlCode
|
||
|
);
|
||
|
|
||
|
|
||
|
NTSTATUS
|
||
|
ArapDisconnect(
|
||
|
IN PIRP pIrp
|
||
|
);
|
||
|
|
||
|
|
||
|
NTSTATUS
|
||
|
ArapGetStats(
|
||
|
IN PIRP pIrp
|
||
|
);
|
||
|
|
||
|
|
||
|
NTSTATUS
|
||
|
ArapGetAddr(
|
||
|
IN PIRP pIrp
|
||
|
);
|
||
|
|
||
|
|
||
|
NTSTATUS
|
||
|
ArapProcessSelect(
|
||
|
IN PIRP pIrp
|
||
|
);
|
||
|
|
||
|
|
||
|
PARAPCONN
|
||
|
FindArapConnByContx(
|
||
|
IN PVOID pDllContext
|
||
|
);
|
||
|
|
||
|
|
||
|
PARAPCONN
|
||
|
FindAndRefArapConnByAddr(
|
||
|
IN ATALK_NODEADDR destNode,
|
||
|
OUT DWORD *pdwFlags
|
||
|
);
|
||
|
|
||
|
|
||
|
PVOID
|
||
|
FindAndRefRasConnByAddr(
|
||
|
IN ATALK_NODEADDR destNode,
|
||
|
OUT DWORD *pdwFlags,
|
||
|
OUT BOOLEAN *pfThisIsPPP
|
||
|
);
|
||
|
|
||
|
|
||
|
BOOLEAN
|
||
|
ArapConnIsValid(
|
||
|
IN PARAPCONN pArapConn
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
DerefArapConn(
|
||
|
IN PARAPCONN pArapConn
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
DerefMnpSendBuf(
|
||
|
IN PMNPSENDBUF pMnpSendBuf,
|
||
|
IN BOOLEAN fNdisSendComplete
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapReleaseAddr(
|
||
|
IN PARAPCONN pArapConn
|
||
|
);
|
||
|
|
||
|
|
||
|
NTSTATUS
|
||
|
ArapIoctlSend(
|
||
|
IN PIRP pIrp
|
||
|
);
|
||
|
|
||
|
|
||
|
NTSTATUS
|
||
|
ArapIoctlRecv(
|
||
|
IN PIRP pIrp
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapDelayedNotify(
|
||
|
OUT PARAPCONN *ppDiscArapConn,
|
||
|
OUT PARAPCONN *ppRecvArapConn
|
||
|
);
|
||
|
|
||
|
|
||
|
DWORD
|
||
|
ArapSendPrepare(
|
||
|
IN PARAPCONN pArapConn,
|
||
|
IN PBUFFER_DESC pOrgBuffDesc,
|
||
|
IN DWORD Priority
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
ArapIoctlSendComplete(
|
||
|
IN DWORD StatusCode,
|
||
|
IN PARAPCONN pArapConn
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapRcvIndication(
|
||
|
IN PARAPCONN pArapConn,
|
||
|
IN PVOID LkBuf,
|
||
|
IN UINT LkBufSize
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapRcvComplete(
|
||
|
IN VOID
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapPerConnRcvProcess(
|
||
|
IN PARAPCONN pArapConn
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapNdisSend(
|
||
|
IN PARAPCONN pArapConn,
|
||
|
IN PLIST_ENTRY pSendHead
|
||
|
);
|
||
|
|
||
|
|
||
|
DWORD
|
||
|
ArapGetNdisPacket(
|
||
|
IN PMNPSENDBUF pMnpSendBuf
|
||
|
);
|
||
|
|
||
|
|
||
|
BOOLEAN
|
||
|
ArapRefillSendQ(
|
||
|
IN PARAPCONN pArapConn
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapNdisSendComplete(
|
||
|
IN NDIS_STATUS Status,
|
||
|
IN PBUFFER_DESC pBufferDesc,
|
||
|
IN PSEND_COMPL_INFO pSendInfo
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
RasStatusIndication(
|
||
|
IN NDIS_STATUS GeneralStatus,
|
||
|
IN PVOID StatusBuf,
|
||
|
IN UINT StatusBufLen
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapRetransmitComplete(
|
||
|
NDIS_STATUS Status,
|
||
|
PBUFFER_DESC pBuffDesc,
|
||
|
PSEND_COMPL_INFO pArapSendInfo
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID ArapMnpSendComplete(
|
||
|
IN PMNPSENDBUF pMnpSendBuf,
|
||
|
IN DWORD Status
|
||
|
);
|
||
|
|
||
|
|
||
|
PARAPBUF
|
||
|
ArapExtractAtalkSRP(
|
||
|
IN PARAPCONN pArapConn
|
||
|
);
|
||
|
|
||
|
|
||
|
PBYTE
|
||
|
ArapAllocDecompMemory(
|
||
|
IN DWORD BufferSize
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapFreeDecompMemory(
|
||
|
IN PBYTE pDecompMemory
|
||
|
);
|
||
|
|
||
|
|
||
|
DWORD
|
||
|
ArapQueueSendBytes(
|
||
|
IN PARAPCONN pArapConn,
|
||
|
IN PBYTE pCompressedDataBuffer,
|
||
|
IN DWORD CompressedDataLen,
|
||
|
IN DWORD Priority
|
||
|
);
|
||
|
|
||
|
|
||
|
PMNPSENDBUF
|
||
|
ArapGetSendBuf(
|
||
|
IN PARAPCONN pArapConn,
|
||
|
IN DWORD Priority
|
||
|
);
|
||
|
|
||
|
|
||
|
DWORD
|
||
|
PrepareConnectionResponse(
|
||
|
IN PARAPCONN pArapConn,
|
||
|
IN PBYTE pReq,
|
||
|
IN DWORD ReqLen,
|
||
|
IN PBYTE pFrame,
|
||
|
IN USHORT * pMnpLen
|
||
|
);
|
||
|
|
||
|
|
||
|
NTSTATUS
|
||
|
ArapMarkConnectionForCallback(
|
||
|
IN PIRP pIrp,
|
||
|
IN ULONG IoControlCode
|
||
|
);
|
||
|
|
||
|
|
||
|
NTSTATUS
|
||
|
ArapMarkConnectionUp(
|
||
|
IN PIRP pIrp
|
||
|
);
|
||
|
|
||
|
|
||
|
PLIST_ENTRY
|
||
|
ArapRearrangePackets(
|
||
|
IN PARAPCONN pArapConn,
|
||
|
IN PLIST_ENTRY pRcvList
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
MnpSendAckIfReqd(
|
||
|
IN PARAPCONN pArapConn,
|
||
|
IN BOOLEAN fForceAck
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
MnpSendLNAck(
|
||
|
IN PARAPCONN pArapConn,
|
||
|
IN BYTE LnSeqToAck
|
||
|
);
|
||
|
|
||
|
|
||
|
DWORD
|
||
|
ArapSendLDPacket(
|
||
|
IN PARAPCONN pArapConn,
|
||
|
IN BYTE UserCode
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapConnectComplete(
|
||
|
IN PMNPSENDBUF pMnpSendBuf,
|
||
|
IN DWORD Status
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapCleanup(
|
||
|
IN PARAPCONN pArapConn
|
||
|
);
|
||
|
|
||
|
|
||
|
DWORD
|
||
|
ArapDataToDll(
|
||
|
IN PARAPCONN pArapConn
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
MnpSendAckComplete(
|
||
|
IN NDIS_STATUS Status,
|
||
|
IN PBUFFER_DESC pBuffDesc,
|
||
|
IN PSEND_COMPL_INFO pInfo
|
||
|
);
|
||
|
|
||
|
|
||
|
DWORD
|
||
|
ArapGetStaticAddr(
|
||
|
IN PARAPCONN pArapConn
|
||
|
);
|
||
|
|
||
|
|
||
|
DWORD
|
||
|
ArapGetDynamicAddr(
|
||
|
IN PARAPCONN pArapConn
|
||
|
);
|
||
|
|
||
|
|
||
|
PARAPCONN
|
||
|
AllocArapConn(
|
||
|
IN ULONG LinkSpeed
|
||
|
);
|
||
|
|
||
|
|
||
|
DWORD
|
||
|
ArapUnblockSelect(
|
||
|
IN VOID
|
||
|
);
|
||
|
|
||
|
|
||
|
DWORD
|
||
|
ArapReleaseResources(
|
||
|
IN VOID
|
||
|
);
|
||
|
|
||
|
|
||
|
BOOLEAN
|
||
|
AtalkReferenceRasDefPort(
|
||
|
IN VOID
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
AtalkPnPInformRas(
|
||
|
IN BOOLEAN fEnableRas
|
||
|
);
|
||
|
|
||
|
|
||
|
DWORD
|
||
|
ArapScheduleWorkerEvent(
|
||
|
IN DWORD Action,
|
||
|
IN PVOID Context1,
|
||
|
IN PVOID Context2
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapDelayedEventHandler(
|
||
|
IN PARAPQITEM pArapQItem
|
||
|
);
|
||
|
|
||
|
|
||
|
LONG FASTCALL
|
||
|
ArapRetryTimer(
|
||
|
IN PTIMERLIST pTimer,
|
||
|
IN BOOLEAN TimerShuttingDown
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapRoutePacketFromWan(
|
||
|
IN PARAPCONN pArapConn,
|
||
|
IN PARAPBUF pArapBuf
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapRoutePacketToWan(
|
||
|
IN ATALK_ADDR *pDestAddr,
|
||
|
IN ATALK_ADDR *pSrcAddr,
|
||
|
IN BYTE Protocol,
|
||
|
IN PBYTE packet,
|
||
|
IN USHORT PktLen,
|
||
|
IN BOOLEAN broadcast,
|
||
|
OUT PBOOLEAN pDelivered
|
||
|
);
|
||
|
|
||
|
|
||
|
BOOLEAN
|
||
|
ArapOkToForward(
|
||
|
IN PARAPCONN pArapConn,
|
||
|
IN PBYTE packet,
|
||
|
IN USHORT packetLen,
|
||
|
OUT DWORD *pPriority
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapAddArapRoute(
|
||
|
IN VOID
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapDeleteArapRoute(
|
||
|
IN VOID
|
||
|
);
|
||
|
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapZipGetZoneStat(
|
||
|
IN OUT PZONESTAT pZoneStat
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapZipGetZoneStatCompletion(
|
||
|
IN ATALK_ERROR ErrorCode,
|
||
|
IN PACTREQ pActReq
|
||
|
);
|
||
|
|
||
|
|
||
|
BOOLEAN
|
||
|
ArapValidNetrange(
|
||
|
IN NETWORKRANGE NetRange
|
||
|
);
|
||
|
|
||
|
BOOLEAN
|
||
|
v42bisInit(
|
||
|
IN PARAPCONN pArapConn,
|
||
|
IN PBYTE pReq,
|
||
|
OUT DWORD *dwReqToSkip,
|
||
|
OUT PBYTE pFrame,
|
||
|
OUT DWORD *dwFrameToSkip
|
||
|
);
|
||
|
|
||
|
|
||
|
DWORD
|
||
|
v42bisCompress(
|
||
|
IN PARAPCONN pArapConn,
|
||
|
IN PUCHAR pUncompressedData,
|
||
|
IN DWORD UnCompressedDataLen,
|
||
|
OUT PUCHAR pCompressedData,
|
||
|
OUT DWORD CompressedDataBufSize,
|
||
|
OUT DWORD *pCompressedDataLen
|
||
|
);
|
||
|
|
||
|
|
||
|
DWORD
|
||
|
v42bisDecompress(
|
||
|
IN PARAPCONN pArapConn,
|
||
|
IN PUCHAR pCompressedData,
|
||
|
IN DWORD CompressedDataLen,
|
||
|
OUT PUCHAR pDecompressedData,
|
||
|
OUT DWORD DecompressedDataBufSize,
|
||
|
OUT DWORD *pByteStillToDecompress,
|
||
|
OUT DWORD *pDecompressedDataLen
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapCaptureSniff(
|
||
|
IN PARAPCONN pArapConn,
|
||
|
IN PBUFFER_DESC pBufferDescr,
|
||
|
IN BYTE FirstSeq,
|
||
|
IN BYTE LastSeq
|
||
|
);
|
||
|
|
||
|
|
||
|
//
|
||
|
// PPP specific routines
|
||
|
//
|
||
|
|
||
|
PATCPCONN
|
||
|
AllocPPPConn(
|
||
|
IN VOID
|
||
|
);
|
||
|
|
||
|
|
||
|
NTSTATUS FASTCALL
|
||
|
PPPProcessIoctl(
|
||
|
IN PIRP pIrp,
|
||
|
IN OUT PARAP_SEND_RECV_INFO pSndRcvInfo,
|
||
|
IN ULONG IoControlCode,
|
||
|
IN PATCPCONN pIncomingAtcpConn
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
DerefPPPConn(
|
||
|
IN PATCPCONN pAtcpConn
|
||
|
);
|
||
|
|
||
|
|
||
|
PATCPCONN
|
||
|
FindAndRefPPPConnByAddr(
|
||
|
IN ATALK_NODEADDR destNode,
|
||
|
OUT DWORD *pdwFlags
|
||
|
);
|
||
|
|
||
|
|
||
|
|
||
|
VOID
|
||
|
PPPRoutePacketToWan(
|
||
|
IN ATALK_ADDR *pDestAddr,
|
||
|
IN ATALK_ADDR *pSrcAddr,
|
||
|
IN BYTE Protocol,
|
||
|
IN PBYTE packet,
|
||
|
IN USHORT PktLen,
|
||
|
IN USHORT HopCount,
|
||
|
IN BOOLEAN broadcast,
|
||
|
OUT PBOOLEAN pDelivered
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID FASTCALL
|
||
|
PPPTransmit(
|
||
|
IN PATCPCONN pAtcpConn,
|
||
|
IN ATALK_ADDR *pDestAddr,
|
||
|
IN ATALK_ADDR *pSrcAddr,
|
||
|
IN BYTE Protocol,
|
||
|
IN PBYTE packet,
|
||
|
IN USHORT PktLen,
|
||
|
IN USHORT HopCount
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID FASTCALL
|
||
|
PPPTransmitCompletion(
|
||
|
IN NDIS_STATUS Status,
|
||
|
IN PSEND_COMPL_INFO pSendInfo
|
||
|
);
|
||
|
|
||
|
|
||
|
DWORD
|
||
|
PPPGetDynamicAddr(
|
||
|
IN PATCPCONN pAtcpConn
|
||
|
);
|
||
|
|
||
|
|
||
|
//
|
||
|
// Debug-only routines
|
||
|
//
|
||
|
|
||
|
#if DBG
|
||
|
|
||
|
NTSTATUS
|
||
|
ArapProcessSniff(
|
||
|
IN PIRP pIrp
|
||
|
);
|
||
|
|
||
|
|
||
|
BOOLEAN
|
||
|
DbgChkRcvQIntegrity(
|
||
|
IN PARAPCONN pArapConn
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
DbgDumpBytes(
|
||
|
IN PBYTE pDbgMsg,
|
||
|
IN PBYTE pBuffer,
|
||
|
IN DWORD BufLen,
|
||
|
IN DWORD DumpLevel
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
DbgDumpBytesPart2(
|
||
|
IN PBYTE pBuffer,
|
||
|
OUT PBYTE OutBuf,
|
||
|
IN DWORD BufLen,
|
||
|
OUT DWORD *NextIndex
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
DbgDumpNetworkNumbers(
|
||
|
IN VOID
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapDbgTrace(
|
||
|
IN PARAPCONN pArapConn,
|
||
|
IN DWORD Location,
|
||
|
IN PVOID Context,
|
||
|
IN DWORD dwInfo1,
|
||
|
IN DWORD dwInfo2,
|
||
|
IN DWORD dwInfo3
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapDbgMnpHist(
|
||
|
IN PARAPCONN pArapConn,
|
||
|
IN BYTE Seq,
|
||
|
IN BYTE FrameType
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
ArapDbgDumpMnpHist(
|
||
|
IN PARAPCONN pArapConn
|
||
|
);
|
||
|
|
||
|
|
||
|
BOOLEAN
|
||
|
ArapDumpSniffInfo(
|
||
|
IN PARAPCONN pArapConn
|
||
|
);
|
||
|
|
||
|
|
||
|
DWORD
|
||
|
ArapFillIrpWithSniffInfo(
|
||
|
IN PARAPCONN pArapConn,
|
||
|
IN PIRP pIrp
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
DbgTrackInfo(
|
||
|
IN PARAPCONN pArapConn,
|
||
|
IN DWORD Size,
|
||
|
IN DWORD TrackingWhat
|
||
|
);
|
||
|
|
||
|
|
||
|
VOID
|
||
|
ArapDumpNdisPktInfo(
|
||
|
IN VOID
|
||
|
);
|
||
|
|
||
|
#endif
|
||
|
|