亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? protoutils.cpp

?? VisualC++網(wǎng)絡(luò)設(shè)計(jì)配套光盤代碼第六章
?? CPP
字號(hào):
////////////////////////////////////
// protoutils.cpp文件


#include <windows.h>
#include <winioctl.h>
#include <tchar.h>
#include <ntddndis.h>
#include <stdio.h>
#include "protoutils.h"


/////////////////////////////////////////////////////////////////
// 控制函數(shù)

BOOL ProtoStartService()
{
	BOOL bRet = FALSE;
	SC_HANDLE hSCM = NULL, hService = NULL;
	char szLinkName[] = "Packet";

	// 打開SCM管理器
	hSCM = ::OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
	if(hSCM != NULL)
	{
		hService = ::OpenService(hSCM, szLinkName, SERVICE_ALL_ACCESS);
		if(hService != NULL)
		{
			if(!::StartService(hService, 0, NULL))
			{
				int nError = ::GetLastError();
				if(nError == ERROR_SERVICE_ALREADY_RUNNING)
				{
					bRet = TRUE;
				}
			}
			else
			{
				bRet = TRUE;
			}
		}
	}

	if(hService != NULL)
		::CloseServiceHandle(hService);
	if(hSCM != NULL)
		::CloseServiceHandle(hSCM);

	if(bRet)
		::Sleep(50);
	return bRet;
}

void ProtoStopService()
{
	SC_HANDLE hSCM = NULL, hService = NULL;
	char szLinkName[] = "Packet";

	// 打開SCM管理器
	hSCM = ::OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
	if(hSCM != NULL)
	{
		hService = ::OpenService(hSCM, szLinkName, SERVICE_ALL_ACCESS);
		if(hService != NULL)
		{
				// 等待服務(wù)完全停止運(yùn)行
			SERVICE_STATUS ss;
			::ControlService(hService, SERVICE_CONTROL_STOP, &ss);
		}
	}

	if(hService != NULL)
		::CloseServiceHandle(hService);
	if(hSCM != NULL)
		::CloseServiceHandle(hSCM);
}

HANDLE ProtoOpenControlDevice()
{
	// 打開驅(qū)動(dòng)程序所控制設(shè)備的句柄
	HANDLE hFile = ::CreateFile(
		_T("\\\\.\\Packet"),
		GENERIC_READ | GENERIC_WRITE,
		0,
		NULL,
		OPEN_EXISTING,
		FILE_ATTRIBUTE_NORMAL,
		NULL);

	return hFile;
}

BOOL CPROTOAdapters::EnumAdapters(HANDLE hControlDevice)
{
	DWORD dwBufferLength = sizeof(m_buffer);
	BOOL bRet = ::DeviceIoControl(hControlDevice, IOCTL_ENUM_ADAPTERS, 
			NULL, 0, m_buffer, dwBufferLength, &dwBufferLength, NULL);
	if(!bRet)
		return FALSE;
	
	// 保存適配器數(shù)量
	m_nAdapters = (ULONG)((ULONG*)m_buffer)[0];
	
	// 下面從m_buffer中獲取適配器名稱和符號(hào)連接名稱
	// 指向設(shè)備名稱
	WCHAR *pwsz = (WCHAR *)((ULONG *)m_buffer + 1);
	int i = 0;
	m_pwszAdapterName[i] = pwsz;
	while(*(pwsz++) != NULL)
	{
		while(*(pwsz++) != NULL)
		{ ; }
		
		m_pwszSymbolicLink[i] = pwsz + 12; // pwsz 指向"\DosDevices\Packet_{}", 加12是為了去掉"\DosDevices\"
		
		while(*(pwsz++) != NULL)
		{ ; }
		
		if(++i >= MAX_ADAPTERS)
			break;	
		
		m_pwszAdapterName[i] = pwsz;
	}
	
	return TRUE;
}

//////////////////////////////////////////////////////////

CAdapter::CAdapter()
{
	m_hAdapter = INVALID_HANDLE_VALUE;
}

CAdapter::~CAdapter()
{
	CloseAdapter();
}

BOOL CAdapter::OpenAdapter(LPCWSTR pwszSymbolicLink, BOOL bAsyn)
{
	char szFile[1024];
	wsprintf(szFile, _T("\\\\.\\%ws"), pwszSymbolicLink);
	
	// 打開到驅(qū)動(dòng)程序所控制設(shè)備的句柄
	m_hAdapter = ::CreateFile(szFile,
		GENERIC_READ | GENERIC_WRITE,
		0,
		NULL,
		OPEN_EXISTING,
		bAsyn ? FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED : FILE_ATTRIBUTE_NORMAL,
		NULL);
	int n = ::GetLastError();
	return m_hAdapter != INVALID_HANDLE_VALUE;
}

void CAdapter::CloseAdapter()
{
	if(m_hAdapter != INVALID_HANDLE_VALUE)
	{
		::CloseHandle(m_hAdapter);
		m_hAdapter = INVALID_HANDLE_VALUE;
	}
}

BOOL CAdapter::ProtoRequest(PPROTOCOL_OID_DATA pOidData, BOOL bQuery)
{
	if(m_hAdapter == INVALID_HANDLE_VALUE)
		return FALSE;
	DWORD dw;
	BOOL bRet = ::DeviceIoControl(
		m_hAdapter, bQuery ? IOCTL_PROTOCOL_QUERY_OID : IOCTL_PROTOCOL_SET_OID,
		pOidData, sizeof(PROTOCOL_OID_DATA) -1 + pOidData->Length,
		pOidData, sizeof(PROTOCOL_OID_DATA) -1 + pOidData->Length, &dw, NULL);

	return bRet;
}

BOOL CAdapter::SetFilter(ULONG nFilters)
{
	PPROTOCOL_OID_DATA pOidData = (PPROTOCOL_OID_DATA)
						::GlobalAlloc(GPTR, (sizeof(PROTOCOL_OID_DATA) + sizeof(ULONG) - 1));

	pOidData->Oid = OID_GEN_CURRENT_PACKET_FILTER; 
	pOidData->Length = sizeof(ULONG);
	*((PULONG)pOidData->Data) = nFilters;

	BOOL bRet = ProtoRequest(pOidData, FALSE);

	::GlobalFree(pOidData);
	return bRet;
}

BOOL CAdapter::ResetAdapter()
{
	DWORD dw;
	BOOL bRet = ::DeviceIoControl(m_hAdapter, IOCTL_PROTOCOL_RESET, NULL, 0, NULL, 0, &dw, NULL);
	return bRet;
}

int CAdapter::RecieveData(PVOID pBuffer, int nLen, LPOVERLAPPED lpOverlapped)
{
	DWORD dwRead;
	if(::ReadFile(m_hAdapter, pBuffer, nLen, &dwRead, lpOverlapped))
		return dwRead;
	else
		return -1;
}

int CAdapter::SendData(PVOID pBuffer, int nLen, LPOVERLAPPED lpOverlapped)
{
	DWORD dwWrite;
	if(::WriteFile(m_hAdapter, pBuffer, nLen, &dwWrite, lpOverlapped))
		return dwWrite;
	else
		return -1;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
狠狠色综合播放一区二区| 夜夜揉揉日日人人青青一国产精品| 日韩成人午夜电影| 制服丝袜激情欧洲亚洲| 秋霞国产午夜精品免费视频| 精品国产自在久精品国产| 寂寞少妇一区二区三区| 久久久久国产成人精品亚洲午夜| 久久国产精品72免费观看| 久久久精品2019中文字幕之3| 成人小视频在线| 自拍偷拍亚洲激情| 欧美精选午夜久久久乱码6080| 热久久国产精品| 欧美激情一区二区三区四区| 91精品福利视频| 免费在线观看一区| 国产精品久久久久aaaa| 欧美三级视频在线观看| 激情文学综合插| 亚洲欧美偷拍卡通变态| 777a∨成人精品桃花网| 高清久久久久久| 亚洲成人黄色影院| 久久久久久免费网| 欧美三级韩国三级日本三斤| 美脚の诱脚舐め脚责91| 18成人在线观看| 欧美电影免费观看完整版| 99精品一区二区| 韩国女主播一区| 亚洲国产cao| 欧美国产在线观看| 91精品国产91久久综合桃花| 丁香桃色午夜亚洲一区二区三区| 亚洲成人激情社区| 国产精品的网站| 精品免费视频.| 欧美色精品在线视频| 国产成人精品午夜视频免费| 亚洲图片自拍偷拍| 成人欧美一区二区三区小说| 欧美一级免费观看| 91行情网站电视在线观看高清版| 黄网站免费久久| 日韩精品一区第一页| 亚洲视频小说图片| 国产欧美日韩在线视频| 欧美一区二区三区四区在线观看 | 中文字幕在线不卡一区二区三区| 在线播放中文字幕一区| 91福利精品视频| 成人免费视频网站在线观看| 久久www免费人成看片高清| 亚洲成人av在线电影| 亚洲丝袜另类动漫二区| 国产日韩成人精品| 久久久久久久综合| 欧美va在线播放| 欧美一区二区三级| 欧美久久久久久久久| 欧美私人免费视频| 色哟哟一区二区三区| 91在线你懂得| 北条麻妃一区二区三区| 成人午夜视频福利| 国产成a人无v码亚洲福利| 成人精品一区二区三区四区 | 欧美国产精品一区二区三区| 欧美v国产在线一区二区三区| 欧美日韩高清一区二区三区| 色先锋aa成人| 色诱亚洲精品久久久久久| aaa欧美大片| 99久久免费视频.com| 91啪亚洲精品| 91成人网在线| 欧美性色综合网| 精品1区2区3区| 在线不卡欧美精品一区二区三区| 91麻豆精品久久久久蜜臀| 4438亚洲最大| 精品国产亚洲一区二区三区在线观看| 欧美一区二区播放| 久久久亚洲精华液精华液精华液| 久久久国产综合精品女国产盗摄| 久久综合狠狠综合| 国产日产欧美一区二区视频| 国产欧美一区二区精品仙草咪| 国产精品热久久久久夜色精品三区| 国产精品视频线看| 亚洲一区二区三区国产| 天堂精品中文字幕在线| 美腿丝袜亚洲色图| 国产成人三级在线观看| 成人avav在线| 欧美视频在线观看一区| 91精品国产福利| 国产亚洲污的网站| 亚洲欧美日韩国产另类专区| 亚洲国产一区视频| 精品一区二区免费| 成人美女视频在线看| 欧美在线一二三四区| 欧美一级二级三级蜜桃| 久久久亚洲精品一区二区三区| 中文字幕一区二区三区精华液 | 久久精品这里都是精品| 日韩理论片一区二区| 首页国产欧美久久| 国产99精品在线观看| 欧美系列一区二区| 久久午夜电影网| 一区二区三区在线观看网站| 免费在线观看视频一区| 成人动漫视频在线| 欧美日韩电影在线| 国产偷v国产偷v亚洲高清| 亚洲尤物视频在线| 国产一区不卡视频| 色婷婷综合五月| 久久久99免费| 亚洲成国产人片在线观看| 国产精品91一区二区| 欧美视频完全免费看| 久久久精品天堂| 香蕉成人伊视频在线观看| 成人一级片在线观看| 欧美高清视频一二三区| 天天av天天翘天天综合网 | 97久久精品人人做人人爽50路| 欧美精品在线观看一区二区| 国产视频一区在线播放| 日韩一区精品视频| 一本久久综合亚洲鲁鲁五月天| 精品国产91洋老外米糕| 亚洲一区二区三区国产| 高清国产一区二区三区| 91精品国产综合久久久久久久| 国产精品久久久久婷婷| 精品一区二区影视| 欧美久久久久免费| 亚洲另类春色国产| av不卡在线观看| 国产日本欧洲亚洲| 国产真实乱偷精品视频免| 宅男噜噜噜66一区二区66| 一区二区免费看| 99久久精品国产导航| 中文久久乱码一区二区| 国产精品资源网站| 欧美zozozo| 看电影不卡的网站| 日韩欧美亚洲国产精品字幕久久久| 一区二区三区不卡视频在线观看| 99久久免费精品| 国产精品久久久久影院老司| 国产精品18久久久久久久久| 精品国产免费一区二区三区香蕉| 一区二区三区在线高清| 一本大道综合伊人精品热热| 国产精品第一页第二页第三页| 国产a精品视频| 6080午夜不卡| 秋霞电影网一区二区| 91精品在线观看入口| 免费人成精品欧美精品| 日韩美一区二区三区| 蜜臀av亚洲一区中文字幕| 在线观看91av| 男女男精品视频网| 精品久久久久久综合日本欧美| 日韩电影在线免费看| 欧美大黄免费观看| 免费久久99精品国产| 精品剧情在线观看| 国产成人激情av| 欧美国产一区在线| 99麻豆久久久国产精品免费优播| 中文字幕亚洲一区二区av在线| 99久久免费精品| 亚洲国产中文字幕在线视频综合| 欧美日韩精品免费观看视频| 天天综合网 天天综合色| 日韩欧美国产电影| 国产98色在线|日韩| 亚洲色图第一区| 欧美二区三区的天堂| 久久成人18免费观看| 国产精品水嫩水嫩| 欧美亚洲图片小说| 久久电影国产免费久久电影| 欧美韩日一区二区三区| 91黄色免费看| 精油按摩中文字幕久久| 国产精品第四页| 91 com成人网| 不卡视频一二三四| 首页国产欧美日韩丝袜| 久久久久久麻豆|