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

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

?? driver.cpp

?? 《Windows驅動開發詳解》一書各章的源代碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/************************************************************************
* 文件名稱:Driver.cpp                                                 
* 作    者:張帆
* 完成日期:2007-11-1
*************************************************************************/

#include "Driver.h"


#define  MY_REG_SOFTWARE_KEY_NAME		L"\\Registry\\Machine\\Software\\Zhangfan"
#pragma INITCODE
VOID CreateRegTest() 
{
	//創建或打開某注冊表項目
	UNICODE_STRING RegUnicodeString;
	HANDLE hRegister;

	//初始化UNICODE_STRING字符串
	RtlInitUnicodeString( &RegUnicodeString, 
		MY_REG_SOFTWARE_KEY_NAME);
	
	OBJECT_ATTRIBUTES objectAttributes;
	//初始化objectAttributes
	InitializeObjectAttributes(&objectAttributes,
							&RegUnicodeString,
							OBJ_CASE_INSENSITIVE,//對大小寫敏感 
							NULL, 
							NULL );
	ULONG ulResult;
	//創建或帶開注冊表項目
	NTSTATUS ntStatus = ZwCreateKey( &hRegister,
							KEY_ALL_ACCESS,
							&objectAttributes,
							0,
							NULL,
							REG_OPTION_NON_VOLATILE,
							&ulResult);

	if (NT_SUCCESS(ntStatus))
	{
		//判斷是被新創建,還是已經被創建
		if(ulResult==REG_CREATED_NEW_KEY)
		{
			KdPrint(("The register item is created\n"));
		}else if(ulResult==REG_OPENED_EXISTING_KEY)
		{
			KdPrint(("The register item has been created,and now is opened\n"));
		}
	}

	//(2)創建或打開某注冊表項目的子項
	UNICODE_STRING subRegUnicodeString;
	HANDLE hSubRegister;

	//初始化UNICODE_STRING字符串
	RtlInitUnicodeString( &subRegUnicodeString, 
		L"SubItem");

	OBJECT_ATTRIBUTES subObjectAttributes;
	//初始化subObjectAttributes
	InitializeObjectAttributes(&subObjectAttributes,
							&subRegUnicodeString,
							OBJ_CASE_INSENSITIVE,//對大小寫敏感 
							hRegister, 
							NULL );
	//創建或帶開注冊表項目
	ntStatus = ZwCreateKey( &hSubRegister,
							KEY_ALL_ACCESS,
							&subObjectAttributes,
							0,
							NULL,
							REG_OPTION_NON_VOLATILE,
							&ulResult);

	if (NT_SUCCESS(ntStatus))
	{
		//判斷是被新創建,還是已經被創建
		if(ulResult==REG_CREATED_NEW_KEY)
		{
			KdPrint(("The sub register item is created\n"));
		}else if(ulResult==REG_OPENED_EXISTING_KEY)
		{
			KdPrint(("The sub register item has been created,and now is opened\n"));
		}
	}

	//關閉注冊表句柄
	ZwClose(hRegister);
	ZwClose(hSubRegister);
}

#pragma INITCODE
VOID OpenRegTest()
{
	UNICODE_STRING RegUnicodeString;
	HANDLE hRegister;

	//初始化UNICODE_STRING字符串
	RtlInitUnicodeString( &RegUnicodeString, 
		MY_REG_SOFTWARE_KEY_NAME);
	
	OBJECT_ATTRIBUTES objectAttributes;
	//初始化objectAttributes
	InitializeObjectAttributes(&objectAttributes,
							&RegUnicodeString,
							OBJ_CASE_INSENSITIVE,//對大小寫敏感
							NULL, 
							NULL );
	//打開注冊表
	NTSTATUS ntStatus = ZwOpenKey( &hRegister,
							KEY_ALL_ACCESS,
							&objectAttributes);

	if (NT_SUCCESS(ntStatus))
	{
		KdPrint(("Open register successfully\n"));
	}

	ZwClose(hRegister);
}

#pragma INITCODE
VOID DeleteItemRegTest()
{
	UNICODE_STRING RegUnicodeString;
	HANDLE hRegister;

#define MY_REG_SOFTWARE_KEY_NAME1 L"\\Registry\\Machine\\Software\\Zhangfan\\SubItem"
	//初始化UNICODE_STRING字符串
	RtlInitUnicodeString( &RegUnicodeString, 
		MY_REG_SOFTWARE_KEY_NAME1);
	
	OBJECT_ATTRIBUTES objectAttributes;
	//初始化objectAttributes
	InitializeObjectAttributes(&objectAttributes,
							&RegUnicodeString,
							OBJ_CASE_INSENSITIVE,//對大小寫敏感
							NULL, 
							NULL );
	//打開注冊表
	NTSTATUS ntStatus = ZwOpenKey( &hRegister,
							KEY_ALL_ACCESS,
							&objectAttributes);

	if (NT_SUCCESS(ntStatus))
	{
		KdPrint(("Open register successfully\n"));
	}

	ntStatus = ZwDeleteKey(hRegister);
	if (NT_SUCCESS(ntStatus))
	{
		KdPrint(("Delete the item successfully\n"));
	}else if(ntStatus == STATUS_ACCESS_DENIED)
	{
		KdPrint(("STATUS_ACCESS_DENIED\n"));

	}else if(ntStatus == STATUS_INVALID_HANDLE)
	{
		KdPrint(("STATUS_INVALID_HANDLE\n"));
	}else
	{
		KdPrint(("Maybe the item has sub item to delete\n"));
	}

	ZwClose(hRegister);
}


#pragma INITCODE
VOID SetRegTest()
{
	UNICODE_STRING RegUnicodeString;
	HANDLE hRegister;

	//初始化UNICODE_STRING字符串
	RtlInitUnicodeString( &RegUnicodeString, 
		MY_REG_SOFTWARE_KEY_NAME);
	
	OBJECT_ATTRIBUTES objectAttributes;
	//初始化objectAttributes
	InitializeObjectAttributes(&objectAttributes,
							&RegUnicodeString,
							OBJ_CASE_INSENSITIVE,//對大小寫敏感
							NULL, 
							NULL );
	//打開注冊表
	NTSTATUS ntStatus = ZwOpenKey( &hRegister,
							KEY_ALL_ACCESS,
							&objectAttributes);

	if (NT_SUCCESS(ntStatus))
	{
		KdPrint(("Open register successfully\n"));
	}

	UNICODE_STRING ValueName;
	//初始化ValueName
	RtlInitUnicodeString( &ValueName, L"REG_DWORD value");

	//設置REG_DWORD子鍵
	ULONG ulValue = 1000;
	ZwSetValueKey(hRegister,
				&ValueName,
				0,
				REG_DWORD,
				&ulValue,
				sizeof(ulValue));

	//初始化ValueName
	RtlInitUnicodeString( &ValueName, L"REG_SZ value");
	WCHAR* strValue = L"hello world";

	//設置REG_SZ子鍵
	ZwSetValueKey(hRegister,
				&ValueName,
				0,
				REG_SZ,
				strValue,
				wcslen(strValue)*2+2);


	//初始化ValueName
	RtlInitUnicodeString( &ValueName, L"REG_BINARY value");
	
	UCHAR buffer[10];
	RtlFillMemory(buffer,sizeof(buffer),0xFF);

	//設置REG_MULTI_SZ子鍵
	ZwSetValueKey(hRegister,
				&ValueName,
				0,
				REG_BINARY,
				buffer,
				sizeof(buffer));

	//關閉注冊表句柄
	ZwClose(hRegister);
}

#pragma INITCODE
VOID QueryRegTest()
{
	UNICODE_STRING RegUnicodeString;
	HANDLE hRegister;

	//初始化UNICODE_STRING字符串
	RtlInitUnicodeString( &RegUnicodeString, 
		MY_REG_SOFTWARE_KEY_NAME);
	
	OBJECT_ATTRIBUTES objectAttributes;
	//初始化objectAttributes
	InitializeObjectAttributes(&objectAttributes,
							&RegUnicodeString,
							OBJ_CASE_INSENSITIVE,//對大小寫敏感
							NULL, 
							NULL );
	//打開注冊表
	NTSTATUS ntStatus = ZwOpenKey( &hRegister,
							KEY_ALL_ACCESS,
							&objectAttributes);

	if (NT_SUCCESS(ntStatus))
	{
		KdPrint(("Open register successfully\n"));
	}

	UNICODE_STRING ValueName;
	//初始化ValueName
	RtlInitUnicodeString( &ValueName, L"REG_DWORD value");

	//讀取REG_DWORD子鍵
	ULONG ulSize;
	ntStatus = ZwQueryValueKey(hRegister,
				&ValueName,
				KeyValuePartialInformation ,
				NULL,
				0,
				&ulSize);

	if (ntStatus==STATUS_OBJECT_NAME_NOT_FOUND || ulSize==0)
	{
		ZwClose(hRegister);
		KdPrint(("The item is not exist\n"));
		return;
	}
	PKEY_VALUE_PARTIAL_INFORMATION pvpi = 
		(PKEY_VALUE_PARTIAL_INFORMATION)
		ExAllocatePool(PagedPool,ulSize);

	ntStatus = ZwQueryValueKey(hRegister,
				&ValueName,
				KeyValuePartialInformation ,
				pvpi,
				ulSize,
				&ulSize);
	if (!NT_SUCCESS(ntStatus))
	{
		ZwClose(hRegister);
		KdPrint(("Read regsiter error\n"));
		return;
	}
	//判斷是否為REG_DWORD類型
	if (pvpi->Type==REG_DWORD && pvpi->DataLength==sizeof(ULONG))
	{
		PULONG pulValue = (PULONG) pvpi->Data;
		KdPrint(("The value:%d\n",*pulValue));
	}

	ExFreePool(pvpi);

	//初始化ValueName
	RtlInitUnicodeString( &ValueName, L"REG_SZ value");
	//讀取REG_SZ子鍵
	ntStatus = ZwQueryValueKey(hRegister,
				&ValueName,
				KeyValuePartialInformation ,
				NULL,
				0,
				&ulSize);

	if (ntStatus==STATUS_OBJECT_NAME_NOT_FOUND || ulSize==0)
	{
		ZwClose(hRegister);
		KdPrint(("The item is not exist\n"));
		return;
	}
	pvpi = 
		(PKEY_VALUE_PARTIAL_INFORMATION)
		ExAllocatePool(PagedPool,ulSize);

	ntStatus = ZwQueryValueKey(hRegister,
				&ValueName,
				KeyValuePartialInformation ,
				pvpi,
				ulSize,
				&ulSize);
	if (!NT_SUCCESS(ntStatus))
	{
		ZwClose(hRegister);
		KdPrint(("Read regsiter error\n"));
		return;
	}
	//判斷是否為REG_SZ類型
	if (pvpi->Type==REG_SZ)
	{
		KdPrint(("The value:%S\n",pvpi->Data));
	}

	ZwClose(hRegister);
}

#pragma INITCODE
VOID EnumerateSubItemRegTest()
{
	UNICODE_STRING RegUnicodeString;
	HANDLE hRegister;

	//初始化UNICODE_STRING字符串
	RtlInitUnicodeString( &RegUnicodeString, 
		MY_REG_SOFTWARE_KEY_NAME);
	
	OBJECT_ATTRIBUTES objectAttributes;
	//初始化objectAttributes
	InitializeObjectAttributes(&objectAttributes,
							&RegUnicodeString,
							OBJ_CASE_INSENSITIVE,//對大小寫敏感
							NULL, 
							NULL );
	//打開注冊表
	NTSTATUS ntStatus = ZwOpenKey( &hRegister,
							KEY_ALL_ACCESS,
							&objectAttributes);

	if (NT_SUCCESS(ntStatus))
	{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日产国产欧美视频一区精品| 国产亚洲一区字幕| 中文字幕av不卡| 97aⅴ精品视频一二三区| 中文成人综合网| 欧美精品一二三| 亚洲成人动漫一区| 欧美tickling挠脚心丨vk| 久久er精品视频| 欧美电影免费观看高清完整版| 精品一二三四在线| 国产精品青草综合久久久久99| 色屁屁一区二区| 免费在线一区观看| 中文字幕在线一区免费| 欧美日本在线视频| 亚洲精品视频免费看| 欧美久久久久中文字幕| 国产一区二区伦理| 亚洲一二三四区| 久久精品男人天堂av| 欧美日韩日日夜夜| 国产成+人+日韩+欧美+亚洲| 亚洲国产成人av好男人在线观看| 久久久久国产精品人| 在线观看视频一区二区| 国产高清在线观看免费不卡| 日本va欧美va精品| 亚洲高清免费视频| 午夜欧美在线一二页| 久久久国产综合精品女国产盗摄| 欧美老年两性高潮| 日本高清不卡视频| 欧洲人成人精品| 91香蕉国产在线观看软件| 国产一区不卡精品| 国产一区二区三区在线看麻豆 | 久久国产精品免费| 蜜桃精品视频在线| 久久精品国产99| 国产精品久久久久久久久晋中| 免费不卡在线视频| 久久99在线观看| 加勒比av一区二区| 高清视频一区二区| 日本久久一区二区| 7777精品伊人久久久大香线蕉的 | 欧美日韩久久不卡| 欧美日韩一级二级| 26uuu国产电影一区二区| 亚洲精品一区二区三区精华液| 久久久久久久久久久久电影 | 欧美www视频| 国产精品美女久久久久久| 亚洲高清三级视频| 成人自拍视频在线观看| 欧美精品v日韩精品v韩国精品v| 欧美一级黄色大片| 中文字幕一区av| 久久国产剧场电影| 欧美日韩aaa| 成人欧美一区二区三区黑人麻豆| 亚洲一区二区在线免费看| 蜜桃av一区二区在线观看| 91香蕉视频黄| 日本一区二区三区在线观看| 爽好多水快深点欧美视频| 成人免费毛片片v| 久久色成人在线| 午夜精品久久久久影视| 99久久久无码国产精品| 国产日韩影视精品| 国产高清久久久久| 国产亚洲精品资源在线26u| 日韩成人精品在线| 欧美日韩高清一区| 亚洲成在人线在线播放| 日韩一级黄色片| 久久久www免费人成精品| 青青草国产成人av片免费| 精品美女一区二区三区| 首页亚洲欧美制服丝腿| 欧美一区二区日韩| 久久99久久久久久久久久久| 91精品国产综合久久精品图片| 天堂影院一区二区| 欧美一级专区免费大片| 黄色资源网久久资源365| 国产欧美一区二区三区在线看蜜臀| 国产精品69毛片高清亚洲| 中国av一区二区三区| 色成年激情久久综合| 午夜伊人狠狠久久| 国产日本亚洲高清| 精品视频免费在线| 粉嫩aⅴ一区二区三区四区五区| 国产精品嫩草影院av蜜臀| 欧美日韩你懂得| jizzjizzjizz欧美| 美国毛片一区二区| 一级做a爱片久久| 国产亚洲1区2区3区| 欧美老肥妇做.爰bbww| 国产成人精品亚洲日本在线桃色| 亚洲电影一级片| 国产精品传媒在线| 久久九九久精品国产免费直播| 91国偷自产一区二区开放时间| 精品在线播放免费| 日韩电影免费在线| 日本91福利区| 久热成人在线视频| 亚洲成人一区二区| 亚洲第一成年网| 午夜国产精品影院在线观看| 亚洲精品写真福利| 亚洲视频一二区| 99视频一区二区| 午夜视频久久久久久| 一区二区欧美国产| 午夜精品久久久久久久| 亚洲一区二区高清| 日韩精品电影在线| 手机精品视频在线观看| 五月激情综合网| 国产成人在线视频网站| www.日韩大片| 国产一区二区视频在线| 亚洲丝袜另类动漫二区| 国产精品高清亚洲| 亚洲自拍偷拍图区| 爽好多水快深点欧美视频| 精品在线一区二区三区| 成人性色生活片免费看爆迷你毛片| 国产69精品久久777的优势| 一本一本久久a久久精品综合麻豆| 欧美午夜精品一区二区蜜桃| 在线播放亚洲一区| 一区二区中文字幕在线| 亚洲另类春色校园小说| 亚洲欧洲日本在线| 亚洲精品乱码久久久久久日本蜜臀| 亚洲图片欧美色图| 国产精品影音先锋| 欧美视频一区二区三区| 国产欧美精品一区二区三区四区| 亚洲男人都懂的| 国产一区二区0| 日韩精品一区二区三区老鸭窝| 依依成人综合视频| 成人黄色一级视频| 欧美大黄免费观看| 日日欢夜夜爽一区| 欧美日韩国产精品成人| 亚洲美女在线国产| 波多野结衣中文字幕一区| 精品久久久久一区| 久久99精品国产| 久久久久久日产精品| 国产成人精品免费网站| 精品久久久久久久一区二区蜜臀| 亚洲一区视频在线观看视频| 99久久久久免费精品国产| 欧美国产精品专区| 99精品视频在线观看| 自拍偷拍国产精品| 欧洲色大大久久| 蜜桃视频一区二区三区在线观看| 欧美一区二区高清| 国产一区二区久久| 中文字幕日本乱码精品影院| 91视频www| 精品一区在线看| 国产精品天美传媒| 欧美亚洲免费在线一区| 奇米精品一区二区三区四区 | 91精品国产色综合久久久蜜香臀| 亚洲福利电影网| 久久夜色精品一区| 色婷婷久久久综合中文字幕| 午夜婷婷国产麻豆精品| 精品国产一区二区在线观看| av在线不卡网| 久久99国产精品尤物| 亚洲一二三区在线观看| 国产亚洲精品超碰| 91精品国产品国语在线不卡| 不卡av电影在线播放| 毛片不卡一区二区| 首页国产欧美日韩丝袜| 亚洲欧洲精品成人久久奇米网| 制服丝袜亚洲网站| 欧美综合在线视频| 97精品视频在线观看自产线路二| 丰满白嫩尤物一区二区| 久久免费午夜影院| 国产成人精品免费| 久久www免费人成看片高清| 综合在线观看色| 亚洲天堂福利av|