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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? protoutils.cpp

?? 這是一個關于以太網絡適配器驅動設計的例子。
?? CPP
字號:
////////////////////////////////////
// protoutils.cpp文件


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


/////////////////////////////////////////////////////////////////
// 控制函數

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

	// 打開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[] = "slNdisProt";
	char driverPath[] = "ProtoDrv.sys";

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

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

HANDLE ProtoOpenControlDevice()
{
	// 打開驅動程序所控制設備的句柄
	HANDLE hFile = ::CreateFile(
		_T("\\\\.\\slNdisProt"),
		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;
	
	// 保存適配器數量
	m_nAdapters = (ULONG)((ULONG*)m_buffer)[0];
	
	// 下面從m_buffer中獲取適配器名稱和符號連接名稱
	// 指向設備名稱
	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);
	
	// 打開到驅動程序所控制設備的句柄
	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;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91福利社在线观看| 一区二区三区蜜桃网| 风间由美中文字幕在线看视频国产欧美| 欧美国产精品v| 欧美一区二区观看视频| 欧美精品国产精品| 91免费视频网| 99精品视频在线观看| 日韩国产欧美视频| 亚洲欧美日韩久久| 中文字幕中文字幕一区二区| 久久精品视频免费观看| 久久久久久综合| 欧美精品一区二区三区高清aⅴ | 精品乱码亚洲一区二区不卡| 91高清视频在线| 91在线一区二区三区| 国产不卡在线播放| 成人av电影免费在线播放| 丰满少妇久久久久久久| 处破女av一区二区| 99久久99久久久精品齐齐| 9l国产精品久久久久麻豆| 99久久婷婷国产综合精品电影 | 国产欧美精品一区| 日本一区二区三区高清不卡| 欧美国产精品中文字幕| 国产精品美女久久久久久2018| 日韩精品中文字幕一区| www成人在线观看| 久久久久成人黄色影片| 中文久久乱码一区二区| √…a在线天堂一区| 国产精品嫩草影院com| 国产精品美女视频| 亚洲欧美精品午睡沙发| 亚洲成年人网站在线观看| 亚洲r级在线视频| 精品影视av免费| 成人激情午夜影院| 欧美体内she精高潮| 精品国产免费视频| 久久精品日产第一区二区三区高清版 | 91久久香蕉国产日韩欧美9色| 欧美日韩精品一区二区三区| 日韩精品自拍偷拍| 国产精品女上位| 婷婷久久综合九色综合绿巨人| 蜜桃av一区二区| 波多野结衣亚洲| 欧美一卡二卡三卡四卡| 中文字幕一区二区三区不卡在线 | av电影天堂一区二区在线观看| 在线看不卡av| 精品久久人人做人人爽| 亚洲视频在线一区| 久久狠狠亚洲综合| 91免费国产在线| 欧美tk—视频vk| 国产精品久久久久久久裸模| 日韩精品一级二级| 99久久精品一区| 精品国产凹凸成av人网站| 中文字幕一区二区三区视频| 捆绑调教美女网站视频一区| 色呦呦国产精品| 久久精品在这里| 午夜精品一区二区三区免费视频| 成人高清免费观看| 精品国产一区二区国模嫣然| 自拍av一区二区三区| 国产在线不卡视频| 91精品国产综合久久久久| 亚洲免费资源在线播放| 国产91富婆露脸刺激对白| 日韩午夜精品电影| 日韩在线播放一区二区| 欧美日韩不卡在线| 亚洲欧美日韩国产手机在线| 国产不卡视频在线播放| 精品国产乱码久久| 另类小说综合欧美亚洲| 欧美一区二区在线看| 亚洲福利一二三区| 欧美日韩综合不卡| 婷婷综合另类小说色区| 欧美乱妇20p| 亚洲h在线观看| 欧美色视频一区| 亚洲成人综合视频| 欧美日产国产精品| 婷婷久久综合九色综合绿巨人| 色悠悠久久综合| 美腿丝袜在线亚洲一区| 国产欧美视频一区二区三区| 色综合一个色综合| 日韩av在线播放中文字幕| 精品成人a区在线观看| 成人禁用看黄a在线| 亚洲成人一区二区在线观看| 精品裸体舞一区二区三区| 国产成人aaaa| 午夜天堂影视香蕉久久| 久久综合九色综合欧美亚洲| av在线播放一区二区三区| 天天综合网天天综合色 | 激情文学综合网| 中文一区一区三区高中清不卡| 色综合婷婷久久| 国产真实精品久久二三区| 亚洲精品日韩一| 日韩欧美123| 色狠狠桃花综合| 国产精品996| 日韩精品亚洲专区| ...xxx性欧美| 2014亚洲片线观看视频免费| 色噜噜夜夜夜综合网| 久久精品国产99| 亚洲午夜在线观看视频在线| 国产亚洲美州欧州综合国| 欧美日韩国产不卡| 97se亚洲国产综合自在线观| 韩国三级在线一区| 麻豆91精品91久久久的内涵| 亚洲精品免费看| 中文字幕高清不卡| 欧美成人精品1314www| 欧美日韩精品一区二区三区蜜桃| 成人av动漫在线| 国产伦精品一区二区三区免费迷| 亚洲gay无套男同| 亚洲激情图片qvod| 国产精品视频在线看| 久久久久久久一区| 国产精品免费网站在线观看| 91精品国产综合久久福利| 99精品桃花视频在线观看| 国产不卡视频在线播放| 激情综合色播五月| 久久国产生活片100| 同产精品九九九| 亚洲国产日韩一级| 亚洲福利视频一区| 五月激情综合色| 午夜精品成人在线视频| 亚洲va中文字幕| 亚洲国产视频直播| 亚洲最大的成人av| 亚洲国产综合人成综合网站| 亚洲女女做受ⅹxx高潮| 中文字幕亚洲区| 亚洲日本免费电影| 亚洲久本草在线中文字幕| 亚洲自拍偷拍欧美| 亚洲午夜羞羞片| 日韩综合小视频| 欧美aaa在线| 国产美女视频一区| 成人影视亚洲图片在线| 99国产精品久| 欧美午夜精品一区二区三区| 欧美探花视频资源| 欧美一卡二卡在线观看| 亚洲精品一线二线三线| 中国av一区二区三区| **性色生活片久久毛片| 玉米视频成人免费看| 亚洲电影中文字幕在线观看| 免费观看在线色综合| 国产一区二区三区四| 成人午夜又粗又硬又大| 色哟哟国产精品免费观看| 欧美色区777第一页| 精品国产乱码久久久久久久| 国产精品国产馆在线真实露脸| 亚洲视频1区2区| 免费成人在线播放| 丁香六月综合激情| 欧美群妇大交群中文字幕| 精品久久国产字幕高潮| 国产精品国产三级国产三级人妇| 一区二区三区**美女毛片| 久久国产综合精品| 91蝌蚪porny成人天涯| 91精品欧美综合在线观看最新| 久久久国产午夜精品| 亚洲精品水蜜桃| 强制捆绑调教一区二区| 不卡高清视频专区| 欧美精品一卡两卡| 亚洲国产精品99久久久久久久久| 亚洲一区二区黄色| 国产真实乱偷精品视频免| 欧美性做爰猛烈叫床潮| 国产蜜臀av在线一区二区三区| 亚洲综合精品自拍| 成人一级片网址| 精品国产一二三| 日本中文一区二区三区|