当前位置: 代码迷 >> 驱动开发 >> 初学、求教关于动态内存的运用
  详细解决方案

初学、求教关于动态内存的运用

热度:71   发布时间:2016-04-28 10:42:45.0
初学、求教关于动态内存的使用?
C/C++ code
#pragma INITCODENTSTATUS CreateDevice(IN PDRIVER_OBJECT pDriverObject){    //创建设备名称    UNICODE_STRING devName;    RtlInitUnicodeString(&devName,L"\\Device\\MyFileDevice");//这里据我了解是初始化局部内存,然后#pragma INITCODE会因为这段卸载局部内存。IoCreateDevice书上都是这么写,那就是正常工作,但我新手,如果遇到别的函数如何区别下呢。。。        //创建设备    status = IoCreateDevice(pDriverObject,sizeof(DEVICE_EXTENSION),&devName,                            FILE_DEVICE_UNKNOWN,                            0,TRUE,                            &pDevObj);             ......         pDevExt = (PDEVICE_EXTENSION)pDevObj->DeviceExtension;       pDevExt->pDevice = pDevObj;    pDevExt->ustrDeviceName = devName;    //创建符号链接    UNICODE_STRING symLinkName;    RtlInitUnicodeString(&symLinkName,L"\\??\\HelloDDK");    //这里是局部内存,一会儿难道不会释放吗?    pDevExt->ustrSymLinkName = symLinkName;我看的是张帆的<<Windows驱动开发技术详解>>求大神指导。。。







------解决方案--------------------
因为字符串常量是存储在静态存储区的 在程序运行阶段是不会改变的
结贴吧
------解决方案--------------------
探讨
//这里是局部内存,一会儿难道不会释放吗?
pDevExt->ustrSymLinkName = symLinkName;