📄 vpn.h
字号:
);
VOID PgpMemoryUnmapWin32Address(
IN PVOID VirtualAddress,
IN ULONG NumBytes,
IN HANDLE ProcessHandle
);
VOID ProtocolIndicateReceive(
IN PVPN_ADAPTER adapter,
IN NDIS_HANDLE MacContext,
IN PUCHAR HeaderBuffer,
IN UINT HeaderBufferSize,
IN PVOID LookAheadBuffer,
IN UINT LookAheadBufferSize,
IN UINT PacketSize
);
VOID ProtocolIndicateReceiveComplete(
IN PVPN_ADAPTER adapter
);
/*
* Fragmentation and Reassembly support routines.
*/
void PacketEnqueue(
PVPN_ADAPTER adapter,
PPGPNDIS_PACKET *packet_list,
PPGPNDIS_PACKET packet);
PPGPNDIS_PACKET PacketDequeue(
PVPN_ADAPTER adapter,
PPGPNDIS_PACKET *packet_list);
PPGPNDIS_PACKET PacketRemoveByXformPacket(
PVPN_ADAPTER adapter,
PPGPNDIS_PACKET *packet_list,
PNDIS_PACKET packet);
PPGPNDIS_PACKET PacketRemoveBySrcPacket(
PVPN_ADAPTER adapter,
PPGPNDIS_PACKET *packet_list,
PNDIS_PACKET packet);
NDIS_STATUS AllocatePGPnetPacketPool(PVPN_ADAPTER adapter);
PPGPNDIS_PACKET PGPNdisPacketAllocWithBindingContext(
PNDIS_STATUS status,
PVPN_ADAPTER adapter);
PPGPNDIS_PACKET PGPNdisPacketAllocWithXformPacket(
PNDIS_STATUS status,
PVPN_ADAPTER adapter);
PPGPNDIS_PACKET PGPNdisPacketAllocWithSrcPacket(
PNDIS_STATUS status,
PVPN_ADAPTER adapter);
VOID PGPNdisPacketFree(
PVPN_ADAPTER adapter,
PPGPNDIS_PACKET packet);
VOID PGPNdisPacketFreeWithBindingContext(
PVPN_ADAPTER adapter,
PPGPNDIS_PACKET packet);
VOID PGPNdisPacketFreeSrcPacket(
PVPN_ADAPTER adapter,
PPGPNDIS_PACKET packet);
VOID PGPCopyPacketToBlock(
PNDIS_PACKET packet,
PUCHAR block,
PUINT bytesCopied);
VOID PGPnetAdjustTransferCompletePacket(PPGPNDIS_PACKET pgpPacket);
VOID PGPnetAdjustPacket(PPGPNDIS_PACKET packet);
void RequestEnqueue(
PVPN_ADAPTER adapter,
PPGPNDIS_REQUEST *request_list,
PPGPNDIS_REQUEST request);
PPGPNDIS_REQUEST RequestDequeue(
PVPN_ADAPTER adapter,
PPGPNDIS_REQUEST *reqeust_list);
PPGPNDIS_REQUEST RequestRemoveByNdisRequest(
PVPN_ADAPTER adapter,
PPGPNDIS_REQUEST *reqeust_list,
PNDIS_REQUEST packet);
PPGPNDIS_REQUEST PGPNdisRequestAlloc(
PNDIS_STATUS status,
PVPN_ADAPTER adapter);
VOID PGPNdisRequestFree(
PVPN_ADAPTER adapter,
PPGPNDIS_REQUEST request);
NDIS_STATUS QueueForTransferComplete(
PVPN_ADAPTER adapter,
NDIS_HANDLE MacReceiveContext,
PUCHAR HeaderBuffer,
UINT HeaderBufferLength,
PUCHAR LookAheadBuffer,
UINT LookAheadBufferLength,
UINT PacketSize);
NDIS_STATUS TransformAndIndicate(
PVPN_ADAPTER adapter,
PPGPNDIS_PACKET pgpPacket);
USHORT iphdr_cksum(USHORT *iph);
void CopySrcBlockToXformBlock(PGPNDIS_PACKET *packet);
void GetIPAddressFromARP(PVPN_ADAPTER adapter, PVOID block);
VOID FragmentCollection(
PVOID SystemArg1,
PVOID Context,
PVOID SystemArg2,
PVOID SystemArg3);
#ifdef CHICAGO
VOID EventTimerRoutine(
PVOID SystemArg1,
PVOID Context,
PVOID SystemArg2,
PVOID SystemArg3);
#endif
VOID RequestTimerRoutine(
PVOID SystemArg1,
PVOID Context,
PVOID SystemArg2,
PVOID SystemArg3);
void NdisRequestTrace(
PNDIS_REQUEST NdisRequest);
VOID PgpEventSet(
IN PPGPEVENT_CONTEXT pPgpEvent
);
PVPN_ADAPTER AllocateVpnAdapter();
VOID FreeVpnAdapter(
IN PVPN_ADAPTER VpnAdapter
);
VOID ProtocolCloseAdapterComplete(
IN NDIS_HANDLE ProtocolBindingContext,
IN NDIS_STATUS status
);
VOID ProtocolOpenAdapterComplete(
IN NDIS_HANDLE ProtocolBindingContext,
IN NDIS_STATUS status,
IN NDIS_STATUS OpenErrorStatus
);
NDIS_STATUS ProtocolReceive(
IN NDIS_HANDLE ProtocolBindingContext,
IN NDIS_HANDLE MacReceiveContext,
IN PVOID HeaderBuffer,
IN UINT HeaderBufferSize,
IN PVOID LookAheadBuffer,
IN UINT LookAheadBufferSize,
IN UINT PacketSize
);
VOID ProtocolIndicateReceive(
IN PVPN_ADAPTER adapter,
IN NDIS_HANDLE MacContext,
IN PUCHAR HeaderBuffer,
IN UINT HeaderBufferSize,
IN PVOID LookAheadBuffer,
IN UINT LookAheadBufferSize,
IN UINT PacketSize
);
VOID ProtocolReceiveComplete(
IN NDIS_HANDLE ProtocolBindingContext
);
VOID ProtocolIndicateReceiveComplete(
IN PVPN_ADAPTER adapter
);
VOID ProtocolRequestComplete(
IN NDIS_HANDLE ProtocolBindingContext,
IN PNDIS_REQUEST NdisRequest,
IN NDIS_STATUS Status
);
VOID ProtocolResetComplete(
IN NDIS_HANDLE ProtocolBindingContext,
IN NDIS_STATUS status
);
VOID ProtocolSendComplete(
IN NDIS_HANDLE ProtocolBindingContext,
IN PNDIS_PACKET Packet,
IN NDIS_STATUS Status
);
VOID ProtocolStatus(
IN NDIS_HANDLE ProtocolBindingContext,
IN NDIS_STATUS Status,
IN PVOID StatusBuffer,
IN UINT StatusBufferSize
);
VOID ProtocolStatusComplete(
IN NDIS_HANDLE ProtocolBindingContext
);
VOID ProtocolTransferDataComplete(
IN NDIS_HANDLE ProtocolBindingContext,
IN PNDIS_PACKET Packet,
IN NDIS_STATUS Status,
IN UINT BytesTransferred
);
VOID ProtocolBindAdapter(
OUT PNDIS_STATUS Status,
IN NDIS_HANDLE BindContext,
IN PNDIS_STRING DeviceName,
IN PVOID SystemSpecific1,
IN PVOID SystemSpecific2
);
VOID ProtocolUnbindAdapter(
OUT PNDIS_STATUS Status,
IN NDIS_HANDLE ProtocolBindingContext,
IN NDIS_HANDLE UnbindContext
);
VOID ProtocolUnload(
VOID
);
BOOLEAN BroadcastEthernetAddress(
UCHAR* eth_dstAddress);
ULONG PgpKernelGetSystemTime();
void PacketHeadEnqueue(
PVPN_ADAPTER adapter,
PPGPNDIS_PACKET_HEAD *packet_head_list,
PPGPNDIS_PACKET_HEAD packetHead);
PPGPNDIS_PACKET_HEAD PacketHeadDequeue(
PVPN_ADAPTER adapter,
PPGPNDIS_PACKET_HEAD *packet_head_list);
VOID PGPNdisPacketHeadFreeList(
PVPN_ADAPTER adapter,
PPGPNDIS_PACKET_HEAD packetHead,
BOOLEAN outgoing);
VOID PGPNdisPacketHeadFree(
PVPN_ADAPTER adapter,
PPGPNDIS_PACKET_HEAD packetHead);
VOID PacketHeadListRemove(
PVPN_ADAPTER adapter,
PPGPNDIS_PACKET_HEAD *packet_list,
PPGPNDIS_PACKET_HEAD packetHead);
PPGPNDIS_PACKET_HEAD PacketHeadListQuery(
PVPN_ADAPTER adapter,
PPGPNDIS_PACKET_HEAD *packet_head_list,
USHORT id,
ULONG ipAddress);
PPGPNDIS_PACKET_HEAD PGPNdisPacketHeadAlloc(
PNDIS_STATUS status,
PVPN_ADAPTER adapter);
VOID InsertPGPNdisPacket(
PVPN_ADAPTER adapter,
PPGPNDIS_PACKET_HEAD packetHead,
PPGPNDIS_PACKET pgpPacket);
VOID AppendPGPNdisPacket(
PVPN_ADAPTER adapter,
PPGPNDIS_PACKET_HEAD packetHead,
PPGPNDIS_PACKET pgpPacket);
VOID IndicateReceiveClear(
PVPN_ADAPTER adapter,
PPGPNDIS_PACKET pgpPacket);
NDIS_STATUS MacSendPackets(
PVPN_ADAPTER adapter,
PPGPNDIS_PACKET_HEAD packetHead);
VOID ProtocolIndicatePackets(
PVPN_ADAPTER adapter,
PPGPNDIS_PACKET_HEAD packetHead);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -