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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(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;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产亚洲在线| 欧美亚洲精品一区| 久久久久久久精| 成人综合婷婷国产精品久久| 国产欧美一区二区精品性色超碰| 成人精品国产一区二区4080| 亚洲乱码国产乱码精品精98午夜| 欧美日韩三级在线| 免费成人在线观看| 国产日韩av一区| 日本韩国视频一区二区| 日韩和欧美一区二区三区| 日韩美女天天操| av亚洲产国偷v产偷v自拍| 亚洲欧美色图小说| 91精品国产黑色紧身裤美女| 久久国产剧场电影| 国产精品久久久久久久裸模| 精品视频999| 国产美女一区二区三区| 亚洲人成精品久久久久| 日韩视频一区二区| 99热99精品| 免费高清视频精品| 日韩美女视频一区二区 | 欧美日韩视频第一区| 久久se精品一区精品二区| 一区在线播放视频| 91精品欧美一区二区三区综合在| 国产精品一区久久久久| 亚洲五码中文字幕| 欧美国产禁国产网站cc| 9191成人精品久久| 99视频热这里只有精品免费| 奇米影视7777精品一区二区| 亚洲人吸女人奶水| 精品国产一二三| 欧美日韩精品一区视频| 成人av综合一区| 另类专区欧美蜜桃臀第一页| 亚洲精品国产一区二区三区四区在线| 欧美一区二区视频在线观看2020| 成人va在线观看| 六月丁香综合在线视频| 亚洲福利一区二区三区| 国产精品二三区| 国产日产欧美一区| 精品国产污网站| 欧美日本一区二区三区四区| 99精品久久久久久| 国产盗摄精品一区二区三区在线| 亚洲成av人综合在线观看| 亚洲色图第一区| 国产欧美日韩在线| 久久日韩精品一区二区五区| 欧美人牲a欧美精品| 在线免费观看视频一区| 成人免费av在线| 国产精品123区| 久久99久久精品欧美| 亚洲va韩国va欧美va精品| 亚洲综合一区二区| 自拍av一区二区三区| 国产精品国产自产拍高清av王其| 久久久亚洲午夜电影| 日韩欧美不卡在线观看视频| 欧美一区二区三区免费在线看| 在线免费观看日韩欧美| 欧美在线小视频| 欧美午夜精品免费| 欧美色图片你懂的| 欧美日韩黄色一区二区| 91国内精品野花午夜精品 | 国产乱子轮精品视频| 免费在线视频一区| 麻豆精品一区二区综合av| 久久国产剧场电影| 激情六月婷婷综合| 国产一区二区日韩精品| 国产精品自在欧美一区| 国产成人免费高清| www..com久久爱| 一本一道久久a久久精品综合蜜臀| 99精品久久久久久| 欧美亚洲国产bt| 在线播放视频一区| 精品久久一区二区| 久久久99精品免费观看| 国产精品女上位| 亚洲三级电影全部在线观看高清| 亚洲色图一区二区| 亚洲福利视频三区| 日本免费新一区视频| 国产一区二区视频在线播放| 国产成都精品91一区二区三| 成人h动漫精品一区二区| 91国偷自产一区二区三区成为亚洲经典 | 国产精品区一区二区三区| 亚洲天天做日日做天天谢日日欢| 亚洲午夜免费视频| 裸体一区二区三区| 成人av在线影院| 欧美三级日韩三级国产三级| 欧美videos大乳护士334| 亚洲国产成人自拍| 亚洲午夜在线电影| 国产一区二区三区黄视频 | 一区二区三区精品在线观看| 日本少妇一区二区| 国产在线精品一区二区不卡了 | 亚洲一区国产视频| 黄色成人免费在线| 97se亚洲国产综合自在线| 欧美一区二区免费视频| 久久亚洲精品小早川怜子| 一区二区三区日本| 国内精品久久久久影院色| 色狠狠桃花综合| 亚洲精品在线观| 一区二区三区免费在线观看| 蜜臀精品久久久久久蜜臀| 92精品国产成人观看免费 | 久久久99精品免费观看| 亚洲成人av中文| 成人夜色视频网站在线观看| 欧美日韩国产美| 中文字幕+乱码+中文字幕一区| 日韩在线一区二区三区| 99视频有精品| 久久色中文字幕| 日韩av一区二| 色一情一乱一乱一91av| 日本一二三不卡| 久久国产三级精品| 欧美裸体一区二区三区| 亚洲色图欧美偷拍| 国产成人精品免费网站| 日韩免费视频一区| 亚洲在线视频一区| 一本一道综合狠狠老| 国产三级一区二区三区| 久久97超碰色| 在线成人免费视频| 一区二区三区欧美视频| 福利一区二区在线| www激情久久| 毛片av中文字幕一区二区| 在线视频你懂得一区| 中文字幕视频一区| 国产成人精品影视| 国产亚洲成年网址在线观看| 久久精品99久久久| 日韩一区二区在线播放| 日韩成人一级大片| 欧美日产在线观看| 午夜激情一区二区三区| 欧美手机在线视频| 亚洲午夜免费电影| 欧美在线观看禁18| 一区二区三区中文字幕电影| 97久久久精品综合88久久| 日本一区二区成人| 播五月开心婷婷综合| 国产精品免费久久| 成人av免费网站| 中文字幕五月欧美| 一本大道久久精品懂色aⅴ | 午夜精品在线视频一区| 精品1区2区3区| 日韩精品电影一区亚洲| 欧美一区二区三区免费观看视频| 丝袜诱惑亚洲看片| 日韩视频在线你懂得| 激情都市一区二区| 久久精品人人做人人综合 | 国产乱国产乱300精品| 久久精品视频在线看| av成人老司机| 亚洲精品网站在线观看| 欧美三级电影网| 精品在线视频一区| 欧美激情一区二区三区四区| 成人免费毛片嘿嘿连载视频| 成人免费在线播放视频| 在线视频欧美精品| 美女mm1313爽爽久久久蜜臀| 国产午夜亚洲精品午夜鲁丝片| 成人91在线观看| 亚洲综合色网站| 日韩精品专区在线影院观看| 国产一区二区主播在线| 国产精品久久久久久久第一福利| 欧美在线免费观看视频| 久久精品99国产精品| 中文字幕一区二区三区视频| 欧美性色欧美a在线播放| 狂野欧美性猛交blacked| 国产午夜精品一区二区三区嫩草 | 国产乱码精品一区二区三区av | 欧美日韩一区二区欧美激情|