【Windows内核驱动函数(1)】IoCreateSymbolicLink()-----创建符号链接函数

简介: 【Windows内核驱动函数(1)】IoCreateSymbolicLink()-----创建符号链接函数

语法

NTSTATUS IoCreateSymbolicLink(
  [in] PUNICODE_STRING SymbolicLinkName,
  [in] PUNICODE_STRING DeviceName
);


参数

[in] SymbolicLinkName

指向缓冲 Unicode 字符串(即用户可见名称)的指针。

[in] DeviceName

指向缓冲 Unicode 字符串的指针,该字符串是驱动程序创建的设备对象的名称。

返回值

返回STATUS_SUCCESS则成功创建了符号链接对象。

注意事项


1、由于在创建设备对象调用IoCreateDevice时会传入设备名称,这个设备名称只能在内核层使用,只能被内核层的函数识别。所以如果想要在用户层的应用程序中访问就需要创建符号链接,相当于为设备对象创建一个别名,供应用程序访问。

比如:c盘的符号链接名称是"C:",对应的设备名称是"\Device\HarddiskVolume1”

在驱动程序中,定义设备对象名称需要以L"\device\“开头,

2、定义符号链接的名称需要以L”\dosDevices\“开头,或者以L”\??\"开头。


相关文章
|
1月前
|
数据安全/隐私保护 虚拟化 Windows
如何在 VM 虚拟机中安装 Windows Server 2012 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 Windows Server 2012 操作系统保姆级教程(附链接)
|
1月前
|
关系型数据库 数据库 C++
【C++】Windows使用Visual Studio C++链接云数据库PostgreSQL(沉浸式老爷教学)
【C++】Windows使用Visual Studio C++链接云数据库PostgreSQL(沉浸式老爷教学)
|
10天前
|
网络安全 C++ Windows
【Windows驱动开发】(主机)VS2017+(虚拟机)win10系统------双机调试
【Windows驱动开发】(主机)VS2017+(虚拟机)win10系统------双机调试
|
10天前
|
Windows
【Windows驱动开发】注册表的基本操作(创建、打开、修改、读取、枚举)(附源码)
【Windows驱动开发】注册表的基本操作(创建、打开、修改、读取、枚举)(附源码)
|
3天前
|
Windows
逆向学习Windows篇:通过编写函数处理菜单消息
逆向学习Windows篇:通过编写函数处理菜单消息
4 0
|
27天前
|
存储 Windows
windows系统的符号链接和硬链接的区别
【5月更文挑战第27天】windows系统的符号链接和硬链接的区别
22 0
|
1月前
|
API C++ Windows
windows编程入门_链接错误的配置
windows编程入门_链接错误的配置
26 0
|
1月前
|
存储 安全 数据安全/隐私保护
【Windows manage-bde 命令】BitLocker 2.0:一步步解锁您的加密驱动器
【Windows manage-bde 命令】BitLocker 2.0:一步步解锁您的加密驱动器
318 0
|
Windows
1、从汇编语言到Windows内核编程笔记(1)
  汇编部分1、call 的本质相当于push+jmp,ret的本质相当于pop+jmp。 2、Windows中,不管哪种调用方式都是返回值放在eax中,然后返回。外部从eax中得到值。 3、Ebp总是被我们用来保存这个函数执行之前的esp的值。
1022 0
|
Web App开发 Windows
2、从汇编语言到Windows内核编程笔记(2)
内核线程 在驱动中生成的线程一般是系统线程。系统线程所在的进程名为“System”。 NTSTATUS PsCreateSystemThread( OUT PHANDLE ThreadHandle, IN ULONG DesiredAccess, IN POBJECT_ATTRIBU...
851 0