⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 overlapped.h

📁 Windows防火墙与网络封包截获技术源码
💻 H
字号:
#ifndef OVERLAPPED_H
#define OVERLAPPED_H

#include <afxtempl.h>

//
// 保存重叠操作参数信息的结构
//
typedef struct _OVERLAPPED_RECORDER
{
	SOCKET			s;
	LPWSABUF		lpBuffers;
	DWORD			dwBufferCount;
	LPDWORD			lpNumberOfBytesRecvd;
	LPDWORD			lpFlags;
	LPWSAOVERLAPPED lpOverlapped;
	LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine;
	struct sockaddr FAR * lpFrom;
	LPINT			lpFromlen;
	int				FunctionType; //0: WSPRecv; 1:WSPRecvFrom
} OVERLAPPED_RECORDER, *POVERLAPPED_RECORDER;

//
// 重叠操作类
//
class COverlapped
{
public:
	COverlapped();

	int FindOverlapped(LPWSAOVERLAPPED lpOverlapped);
	BOOL DeleteOverlapped(int iIndex);
	BOOL AddOverlapped(
		SOCKET			s,
		LPWSABUF		lpBuffers,
		DWORD			dwBufferCount,
		LPDWORD			lpNumberOfBytesRecvd,
		LPDWORD			lpFlags,
		LPWSAOVERLAPPED lpOverlapped,
		LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
		struct sockaddr FAR * lpFrom,
		LPINT			lpFromlen,	 
		int				FunctionType //0: WSPRecv; 1:WSPRecvFrom
		);

public:
	//
	// 所有没有完成的重叠操作数组
	//
	CArray<OVERLAPPED_RECORDER, OVERLAPPED_RECORDER> m_OverlappedRecorder;

private:
	CRITICAL_SECTION m_CriticalSection;
};

#endif //OVERLAPPED_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -