Leaked source code of windows server 2003
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.
 
 
 
 
 
 

651 lines
9.1 KiB

// 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