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

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

?? devicetreeappdlg.cpp

?? 顯示Device Treee
?? CPP
字號:
// DeviceTreeAppDlg.cpp : implementation file
//

#include "stdafx.h"
#include "DeviceTreeApp.h"
#include "DeviceTreeAppDlg.h"
#include ".\devicetreeappdlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CDeviceTreeAppDlg dialog



CDeviceTreeAppDlg::CDeviceTreeAppDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CDeviceTreeAppDlg::IDD, pParent)
{
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CDeviceTreeAppDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_TREE_DEVICE, m_ctrlDeviceTree);
}

BEGIN_MESSAGE_MAP(CDeviceTreeAppDlg, CDialog)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


// CDeviceTreeAppDlg message handlers

BOOL CDeviceTreeAppDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon

	m_hDeviceFile = CreateFile(_T("\\\\.\\DeviceTreeSys"),GENERIC_READ,0,0,OPEN_EXISTING,
							   FILE_ATTRIBUTE_NORMAL,0);

	if(m_hDeviceFile == INVALID_HANDLE_VALUE)
	{
		OnCancel();
		return TRUE;
	}

	DWORD dummy;

	DWORD len = static_cast<DWORD>(sizeof(GET_OBJ_BY_NAME) + sizeof(L"\\Driver\\PnpManager"));

	PGET_OBJ_BY_NAME pInput = reinterpret_cast<PGET_OBJ_BY_NAME>(new BYTE[len]);

	ZeroMemory(pInput,len);

	pInput->m_hRootHandle = 0;
	
	CopyMemory(pInput->m_strName,L"\\Driver\\PnpManager",sizeof(L"\\Driver\\PnpManager"));

	m_pRootDriver = 0;
	m_pRootDevice = 0;

	if(DeviceIoControl(m_hDeviceFile,DEVICE_TREE_GET_POINTER_FROM_NAME,pInput,len,
					   &m_pRootDriver,sizeof(PVOID),&dummy,0))
	{
		BuildDeviceTree();
	}
	
	delete pInput;

	return TRUE;  // return TRUE  unless you set the focus to a control
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CDeviceTreeAppDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this function to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CDeviceTreeAppDlg::OnQueryDragIcon()
{
	return static_cast<HCURSOR>(m_hIcon);
}

VOID CDeviceTreeAppDlg::BuildDeviceTree()
{
	DWORD dummy;
	DRIVER_OBJECT driver;
	m_pRootDevice = 0;

	if(DeviceIoControl(m_hDeviceFile,DEVICE_TREE_READ_KERNEL_MEMORY,&m_pRootDriver,
					   sizeof(PVOID),&driver,sizeof(driver),&dummy,0))
	{
		PDEVICE_OBJECT pDevice = driver.DeviceObject;
		while(pDevice)
		{
			DEVICE_OBJECT device;
			if(!DeviceIoControl(m_hDeviceFile,DEVICE_TREE_READ_KERNEL_MEMORY,
								&pDevice,sizeof(PVOID),&device,sizeof(device),
								&dummy,0))
				return;

			m_pRootDevice = pDevice;

			pDevice = device.NextDevice;
		}
	}

	if(m_pRootDevice)
		BuildDeviceTree(m_pRootDevice,TVI_ROOT);
}

PWCHAR CDeviceTreeAppDlg::QueryObjectName(PVOID pObject)
{
	static WCHAR wName[255];

	PWCHAR pNameString = _T("(unnamed)");

	DWORD dummy;
	ZeroMemory(wName,sizeof(wName));

	if(DeviceIoControl(m_hDeviceFile,DEVICE_TREE_QUERY_OBJECT_NAME,&pObject,sizeof(PVOID),
					   wName,sizeof(wName),&dummy,0))
	{
		if(wName[0])
			pNameString = wName;
	}

	return pNameString;
}

VOID CDeviceTreeAppDlg::BuildDeviceTree(PDEVICE_OBJECT pDeviceObject,HTREEITEM hParent)
{
	DWORD dummy;

	DEVICE_OBJECT device;

	if(!DeviceIoControl(m_hDeviceFile,DEVICE_TREE_READ_KERNEL_MEMORY,&pDeviceObject,
					   sizeof(PVOID),&device,sizeof(device),&dummy,0))
	{
		return;
	}

	CString strDeviceName = QueryObjectName(pDeviceObject);
	CString strDriverName = QueryObjectName(device.DriverObject);

	CString strName;
	strName.Format(_T("PDO:%#x - "));
	strName += strDeviceName;
	strName += _T(" - ");
	strName += strDriverName;

	HTREEITEM hCurrent = m_ctrlDeviceTree.InsertItem(strName,hParent);

	PDEVICE_OBJECT pCurrentFdo = device.AttachedDevice;
	while(pCurrentFdo)
	{
		if(!DeviceIoControl(m_hDeviceFile,DEVICE_TREE_READ_KERNEL_MEMORY,&pCurrentFdo,
							sizeof(PVOID),&device,sizeof(device),&dummy,0))
		{
			return;
		}

		strDeviceName = QueryObjectName(pCurrentFdo);
		strDriverName = QueryObjectName(device.DriverObject);

		strName.Format(_T("FDO:%#x - "));
		strName += strDeviceName;
		strName += _T(" - ");
		strName += strDriverName;

		hCurrent = m_ctrlDeviceTree.InsertItem(strName,hCurrent);

		pCurrentFdo = device.AttachedDevice;
	}

	struct _dev_rel
	{
		DWORD m_dwCount;
		PDEVICE_OBJECT m_pDevices[0x400];
	};

	_dev_rel outRel;
	outRel.m_dwCount = 0;

	if(DeviceIoControl(m_hDeviceFile,DEVICE_TREE_QUERY_BUS_REL,&pDeviceObject,sizeof(PVOID),
					   &outRel,sizeof(outRel),&dummy,0))
	{
		for(DWORD i = 0; i < outRel.m_dwCount; i ++)
		{
			BuildDeviceTree(outRel.m_pDevices[i],hCurrent);
		}
	}
}

void CDeviceTreeAppDlg::OnOK()
{
}

void CDeviceTreeAppDlg::OnCancel()
{
	if(m_hDeviceFile != INVALID_HANDLE_VALUE)
		CloseHandle(m_hDeviceFile);

	CDialog::OnCancel();
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本vs亚洲vs韩国一区三区二区| 黄色精品一二区| 中文字幕在线一区| 久久久高清一区二区三区| 日韩亚洲欧美在线观看| 欧美一级艳片视频免费观看| 欧美日韩一卡二卡| 欧美欧美欧美欧美首页| 欧美日韩在线不卡| 欧美群妇大交群中文字幕| 欧美乱熟臀69xxxxxx| 欧美人妇做爰xxxⅹ性高电影| 欧美日韩黄色一区二区| 欧美色大人视频| 欧美高清视频不卡网| 欧美一区二区在线不卡| 91精品国产综合久久小美女| 日韩亚洲欧美高清| 久久夜色精品国产欧美乱极品| 精品久久一区二区| 久久久久久久久久久久久女国产乱| 日韩精品一区二区三区三区免费| 精品黑人一区二区三区久久| 久久青草国产手机看片福利盒子| 久久蜜臀中文字幕| 国产欧美日韩三区| 一区二区三区在线高清| 丝袜美腿亚洲综合| 狠狠久久亚洲欧美| 岛国av在线一区| 91麻豆免费看片| 欧美日韩午夜在线| wwwwww.欧美系列| 国产欧美1区2区3区| 亚洲激情中文1区| 日韩激情一二三区| 国产精品一区二区在线播放| 99re在线精品| 911精品国产一区二区在线| 欧美tk—视频vk| 日本一区二区三区电影| 一区二区日韩av| 麻豆国产欧美一区二区三区| bt欧美亚洲午夜电影天堂| 欧美日韩亚洲丝袜制服| 久久久不卡网国产精品二区| 一区二区三区中文字幕| 美女视频一区在线观看| yourporn久久国产精品| 3d成人h动漫网站入口| 国产亚洲制服色| 亚洲一区日韩精品中文字幕| 国产精品资源网站| 在线观看av一区二区| 精品成人一区二区三区四区| 亚洲另类春色校园小说| 老司机午夜精品99久久| 91麻豆精品秘密| 精品国产一区a| 亚洲一级在线观看| 国产成人午夜精品影院观看视频| 欧美性猛交xxxxxxxx| 久久久午夜电影| 亚洲成人免费视| 成人激情黄色小说| 欧美一级免费观看| 亚洲美女屁股眼交| 国产成人在线视频网站| 欧美高清hd18日本| 中文字幕一区二| 九九精品一区二区| 欧美日韩一区高清| 自拍偷在线精品自拍偷无码专区| 精品在线播放午夜| 欧美人妖巨大在线| 亚洲黄色片在线观看| 高清免费成人av| 精品国产在天天线2019| 丝袜亚洲另类欧美| 欧美性猛交一区二区三区精品| 国产精品毛片久久久久久久| 精品写真视频在线观看| 欧美一区日本一区韩国一区| 一区二区欧美视频| 91香蕉视频污| 国产农村妇女毛片精品久久麻豆| 美国欧美日韩国产在线播放| 欧美日韩午夜影院| 亚洲午夜久久久久久久久久久 | 日日摸夜夜添夜夜添精品视频| 成人一区二区三区在线观看| 精品国产污网站| 日韩在线一区二区三区| 欧美日本一区二区三区| 亚洲成人资源在线| 欧美亚洲尤物久久| 亚洲一二三四久久| 在线观看亚洲一区| 尤物在线观看一区| 一本一道久久a久久精品综合蜜臀| 国产亚洲成aⅴ人片在线观看| 经典一区二区三区| 欧美mv日韩mv国产网站| 精东粉嫩av免费一区二区三区| 日韩视频永久免费| 麻豆精品视频在线观看| 精品欧美久久久| 国产综合色精品一区二区三区| 日韩精品自拍偷拍| 韩国一区二区三区| 26uuu亚洲婷婷狠狠天堂| 狠狠狠色丁香婷婷综合久久五月| 亚洲精品一区二区三区香蕉| 黄色小说综合网站| 欧美极品美女视频| caoporen国产精品视频| 亚洲视频 欧洲视频| 色乱码一区二区三区88| 亚洲一卡二卡三卡四卡五卡| 欧美精品日日鲁夜夜添| 日本不卡视频在线| 久久众筹精品私拍模特| 成人免费视频一区二区| 综合久久久久久| 欧美理论在线播放| 久久99国产精品麻豆| 国产日韩欧美麻豆| 91免费版在线| 午夜精品免费在线观看| 欧美刺激午夜性久久久久久久 | 91精品免费观看| 国内精品免费在线观看| 中文乱码免费一区二区| 色综合天天狠狠| 天堂成人国产精品一区| 久久女同性恋中文字幕| 91亚洲永久精品| 天堂影院一区二区| 国产欧美精品一区| 欧美视频日韩视频在线观看| 美女一区二区三区| 国产精品无遮挡| 欧美三级电影在线看| 久久精品国产第一区二区三区| 欧美激情一二三区| 在线视频综合导航| 捆绑调教一区二区三区| 中文字幕永久在线不卡| 欧美日韩精品免费| 国产成人午夜电影网| 一区二区国产盗摄色噜噜| 日韩一级成人av| 欧美v日韩v国产v| 亚洲欧美在线另类| 九一久久久久久| 91精品国产入口在线| 国产成人自拍高清视频在线免费播放| 亚洲精选视频在线| 欧美成人猛片aaaaaaa| 99精品久久免费看蜜臀剧情介绍| 午夜精品久久久久久久99樱桃| 久久精品人人爽人人爽| 欧美日韩在线播| 成人小视频在线观看| 免费成人在线观看视频| 亚洲同性gay激情无套| 欧美电影免费观看高清完整版| 91在线观看免费视频| 久久国产精品99精品国产| 亚洲黄色小视频| 国产精品欧美经典| 日韩女优电影在线观看| 91豆麻精品91久久久久久| 国产精品一区二区久久不卡| 亚洲超丰满肉感bbw| 最新不卡av在线| 久久久久久9999| 91精品国产乱码久久蜜臀| 一本大道久久a久久精品综合| 国产一区二区三区四区五区美女 | 欧美视频日韩视频在线观看| 成人深夜视频在线观看| 久久国产婷婷国产香蕉| 亚洲午夜国产一区99re久久| 国产精品久久久久影院色老大| 日韩视频一区二区三区| 欧美日韩在线观看一区二区| 91原创在线视频| 成人在线一区二区三区| 久久精品国产成人一区二区三区 | 国产成人精品亚洲777人妖| 日韩精品国产欧美| 亚洲线精品一区二区三区八戒| 中文字幕在线观看一区| 国产日韩欧美精品一区| xnxx国产精品| 欧美成人性福生活免费看| 欧美一区二区三区色| 欧美日本韩国一区| 欧美日韩1234|