-
-
驱动符号链接的疑问
-
发表于:
2013-5-22 19:15
5058
-
VOID HelloDDKUnload (IN PDRIVER_OBJECT pDriverObject)
{
PDEVICE_OBJECT pNextObj;
KdPrint(("Enter DriverUnload\n"));
pNextObj = pDriverObject->DeviceObject;
while (pNextObj != NULL)
{
PDEVICE_EXTENSION pDevExt = (PDEVICE_EXTENSION)
pNextObj->DeviceExtension;
//删除符号链接
UNICODE_STRING pLinkName = pDevExt->ustrSymLinkName;
IoDeleteSymbolicLink(&pLinkName);
pNextObj = pNextObj->NextDevice;
IoDeleteDevice( pDevExt->pDevice );
}
}
教科书的标准代码如上.
我参考驱动开发技术详解里面. 删除符号链接的代码是在循环里面的.
我知道设备可以不止一个.但是不晓得符号链接有几个.因为书里并没有进行介绍.
我的问题
1.符号链接只有一个的话.可以放到循环外面.如果在循环里面.当有多个设备,只有一个符号链接.进行循环删除的时候.会不会出错?
2.设备数量是否=符号链接数量?
3.如果设备数量与符号链接数量不相等.我想新建个循环进行删除符号链接.但是判断条件?
驱动菜鸟一个.各种不懂.希望有前辈来解答下.谢谢
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课