初学、求教关于动态内存的使用?
#pragma INITCODE
NTSTATUS 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驱动开发技术详解>>求大神指导。。。