📄 符号链接设备接口的打开.txt
字号:
驱动程序:
1.创建符号链接:
UNICODE_STRING deviceName, linkName;//定义两个UNICODE_STRING类型的字符串
RtlInitUnicodeString( &deviceName, NT_DEVICE_NAME);//填充该结构
RtlInitUnicodeString( &linkName, SYM_LINK_NAME);
// Create our device
DebugPrint("Creating device %T",&deviceName);//创建设备对象
status = IoCreateDevice(
DriverObject,
sizeof(PHDIO_DEVICE_EXTENSION),
&deviceName,
FILE_DEVICE_UNKNOWN,
0,
TRUE, // Exclusive
&phddo);
if( !NT_SUCCESS(status))
{
DebugPrintMsg("Could not create device");
return status;
}
DebugPrint("Creating symbolic link %T",&linkName);
status = IoCreateSymbolicLink( &linkName, &deviceName);//创建符号连接
if( !NT_SUCCESS(status))
{
DebugPrintMsg("Could not create symbolic link");
IoDeleteDevice(phddo);
return status;
}
应用程序
2.打开已经创建的符号连接:
HANDLE hLocalDevice;
// 打开设备
hLocalDevice= ::CreateFile(lpszDevicePath, // 设备路径
GENERIC_READ | GENERIC_WRITE, // 读写方式
FILE_SHARE_READ | FILE_SHARE_WRITE, // 共享方式
NULL, // 默认的安全描述符
OPEN_EXISTING, // 创建方式
0, // 不需设置文件属性
NULL);
其中lpszDevicePath为设备路径:\\\\.\\SymbolicLinkName;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -