首页
社区
课程
招聘
[求助]创建调试对象。蓝屏 大神看看这是啥情况
发表于: 2016-1-6 22:22 3061

[求助]创建调试对象。蓝屏 大神看看这是啥情况

2016-1-6 22:22
3061
NTSTATUS
CreatemyObjectTypeByName(
IN PCWSTR ObjectTypeName,//要创建的对象类型的名字
IN POBJECT_TYPE pObjectTypeForCopy,//原始的ObjectType
OUT POBJECT_TYPE *pNewObjectType)//返回新创建的ObjectType
{

	UNICODE_STRING NameString;
	OBJECT_TYPE_INITIALIZER ObjectTypeInitializer;
	NTSTATUS status = 0;
	RtlInitUnicodeString(&NameString, ObjectTypeName);
	RtlZeroMemory(&ObjectTypeInitializer, sizeof(OBJECT_TYPE_INITIALIZER));

	ObjectTypeInitializer.Length = pObjectTypeForCopy->TypeInfo.Length;
	ObjectTypeInitializer.UseDefaultObject = pObjectTypeForCopy->TypeInfo.UseDefaultObject;
	ObjectTypeInitializer.CaseInsensitive = pObjectTypeForCopy->TypeInfo.CaseInsensitive;
	ObjectTypeInitializer.InvalidAttributes = pObjectTypeForCopy->TypeInfo.InvalidAttributes;
	ObjectTypeInitializer.GenericMapping = pObjectTypeForCopy->TypeInfo.GenericMapping;
	ObjectTypeInitializer.ValidAccessMask = 0x1f000f;
	ObjectTypeInitializer.SecurityRequired = pObjectTypeForCopy->TypeInfo.SecurityRequired;
	ObjectTypeInitializer.MaintainHandleCount = pObjectTypeForCopy->TypeInfo.MaintainHandleCount;
	ObjectTypeInitializer.MaintainTypeList = pObjectTypeForCopy->TypeInfo.MaintainTypeList;
	ObjectTypeInitializer.PoolType = pObjectTypeForCopy->TypeInfo.PoolType;
	ObjectTypeInitializer.DefaultPagedPoolCharge = pObjectTypeForCopy->TypeInfo.DefaultPagedPoolCharge;
	ObjectTypeInitializer.DefaultNonPagedPoolCharge = pObjectTypeForCopy->TypeInfo.DefaultNonPagedPoolCharge;
	ObjectTypeInitializer.DumpProcedure = pObjectTypeForCopy->TypeInfo.DumpProcedure;
	ObjectTypeInitializer.OpenProcedure = pObjectTypeForCopy->TypeInfo.OpenProcedure;
	ObjectTypeInitializer.CloseProcedure = pObjectTypeForCopy->TypeInfo.CloseProcedure;
	ObjectTypeInitializer.DeleteProcedure = pObjectTypeForCopy->TypeInfo.DeleteProcedure;
	ObjectTypeInitializer.ParseProcedure = pObjectTypeForCopy->TypeInfo.ParseProcedure;
	ObjectTypeInitializer.SecurityProcedure = pObjectTypeForCopy->TypeInfo.SecurityProcedure;
	ObjectTypeInitializer.QueryNameProcedure = pObjectTypeForCopy->TypeInfo.QueryNameProcedure;
	ObjectTypeInitializer.OkayToCloseProcedure = pObjectTypeForCopy->TypeInfo.OkayToCloseProcedure;

	status = ObCreateObjectType(
		&NameString,
		&ObjectTypeInitializer,
		(PSECURITY_DESCRIPTOR)NULL,
		pNewObjectType);

	if (NT_SUCCESS(status))
	{
		DbgPrint("pNewObjectType: 0x%08X\n", *pNewObjectType);
	}
	return status;
}


抄的论坛上的代码。。   XP跑得正常。。。 win7 32位 蓝屏。。。调用ObCreateObjectType蓝屏的。。   这是哪里的问题丫。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 5
活跃值: (127)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
已经解决了。。
2016-1-6 23:17
0
游客
登录 | 注册 方可回帖
返回