吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1185|回复: 3
收起左侧

[求助] windows驱动编程

[复制链接]
novicePriarie 发表于 2021-9-29 18:14
最近开发驱动遇到一个严重的问题:内核创建设备,正常运行后,应用层CreateFile失败,返回错误码:2。但是如果把应用层重启后,就可以成功打开设备了。好奇怪。。。。不知道什么原因

[C] 纯文本查看 复制代码
//驱动代码:
#define NTDEVICE_NAME_STRING      L"\\Device\\myDevice"
#define SYMBOLIC_NAME_STRING      L"\\DosDevices\\myDevice"

UNICODE_STRING deviceName;
	UNICODE_STRING symbolicLinkName;

	PDEVICE_OBJECT deviceObject = NULL;

	RtlInitUnicodeString(&deviceName, NTDEVICE_NAME_STRING);
	status = IoCreateDevice(
		DriverObject,
		0,
		&deviceName,
		FILE_DEVICE_UNKNOWN,
		FILE_DEVICE_SECURE_OPEN,
		FALSE,
		&deviceObject);
	if (!NT_SUCCESS(status))
	{
		return status;
	}

	RtlInitUnicodeString(&symbolicLinkName, SYMBOLIC_NAME_STRING);
	status = IoCreateSymbolicLink(&symbolicLinkName, &deviceName);
	if (!NT_SUCCESS(status))
	{
		IoDeleteDevice(deviceObject);
		return status;
	}



[Asm] 纯文本查看 复制代码
//应用层代码
#define LINK_NAME_STRING L"\\\\.\\myDevice"
HANDLE hDevice = CreateFileW(
		LINK_NAME_STRING,
		GENERIC_READ | GENERIC_WRITE,
		0,
		NULL,
		OPEN_EXISTING,
		FILE_ATTRIBUTE_SYSTEM,
		NULL);
	if (INVALID_HANDLE_VALUE == hDevice)
	{
		return GetLastError();
	}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

白如雪 发表于 2021-9-29 19:07
太高端.不会啊.这种的是不是有别的程序占用了.重启没占用可以链接. 瞎猜的.
稻海香 发表于 2021-9-29 19:09
 楼主| novicePriarie 发表于 2021-9-29 23:24
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 22:51

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表