语法:
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”\??\"开头。