日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

删除驱动符号链接出错-变量作用域和RtlInitUnicodeString的问题

發布時間:2025/3/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 删除驱动符号链接出错-变量作用域和RtlInitUnicodeString的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關鍵詞: windows驅動開發 ?刪除符號鏈接出錯 ?變量作用域問題?RtlInitUnicodeString

摘要:NT式驅動中,在DriverUnload()中嘗試刪除之前創建的符號鏈接失敗,最后發現原因是變量作用域和RtlInitUnicodeString的問題


原始存在問題的簡化代碼如下:

typedef struct _DEVICE_EXTENSION {UINT32 magicNum;PDEVICE_OBJECT pDevice;UNICODE_STRING symLinkName; } DEVICE_EXTENSION, *PDEVICE_EXTENSION;PDEVICE_OBJECT gControlDeviceObject;DriverEntry() {PDEVICE_EXTENSION pDevExt;WCHAR linkNameBuffer[] = L"\\DosDevices\\diskFilter";UNICODE_STRING LinkName;IoCreateDevice(..., &gControlDeviceObject);RtlInitUnicodeString (&LinkName, linkNameBuffer );pDevExt->magicNum = 0x4c44;pDevExt->symLinkName = LinkName;DriverObject->DriverUnload = DiskFilterUnload; }DiskFilterUnload (IN PDRIVER_OBJECT pDriverObject) {NTSTATUS status;PDEVICE_EXTENSION pDevExt;pDevExt = (PDEVICE_EXTENSION)gControlDeviceObject->DeviceExtension;KdPrint((" devObj(0x%x), magicNum(0x%x), SymLinkName(%wZ)\n", gControlDeviceObject, pDevExt->magicNum, &pDevExt->symLinkName));status = IoDeleteSymbolicLink( &pDevExt->ustrSymLinkName ); }
上述代碼中,從IoDeleteSymbolicLink返回的status是路徑不正確,但KdPrint中打印的magicNum是正確的,windbg調試里發現在DiskFilterUnload()中的pDevExt->symLinkName沒有包含正確的值,當時真有點百思不得其解啊。


后來看到linkNameBuffer是局部變量,想到了變量作用域的問題,把WCHAR ? ? ? ? ? ? linkNameBuffer[] ?= L"\\DosDevices\\diskFilter";拿到DriverEntry外做全局變量,

問題就消失了。當然,更一般的做法應該是在頭文件中#define SymbolicLinkName L"\\DosDevices\\diskFilter"。


現在來看,要產生這個問題,還有一個原因是RtlInitUnicodeString(),它應該沒有做內存拷貝(它沒有為smLinkName分配內存然后把值拷貝過去,但我認為它這樣做了)

看來下次使用RtlInitUnicodeString()的時候得要注意了。


轉載于:https://www.cnblogs.com/bugchecker/archive/2012/11/06/3041590.html

總結

以上是生活随笔為你收集整理的删除驱动符号链接出错-变量作用域和RtlInitUnicodeString的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。