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

t101706 t101706 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

#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驱动开发技术详解>>求大神指导。。。






...全文

相关推荐

C语言 动态内存分配详解

C语言 动态内存分配详解 动态内存分配涉及到堆栈的概念:堆栈是两种数据结构。堆栈都是数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。 栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。 \在C语言中,全局变量分配在内存中的静态存储区,非静态的局部变量(包括形参)是分配在内存的动态存储区,该存储区被称为栈。除此之外,c语言还允许建立内存动态分配区域,以存放一些临时用的数据,这些数据不必

weixin_38618024

MCU动态内存管理

基于C语言在单片机上实现的动态内存管理机制,该机制不会产生内存碎片,测试通过!

JJCar

ucos-ii学习笔记——动态内存分配原理及使用

详细介绍了ucos-ii操作系统的动态内存分配原理及应用,程序完美可以运行,注释详细,希望对你有所帮助

zhangbindt

连续动态内存管理模拟实现

C语言首次适应算法实现,连续动态内存管理模拟实现,对大小为64M的内存进行分配管理

mukunmei

C语言初学常用代码

适合刚入门的C语言初学者参考学习的C程序代码,及错题集合

宇智波Akali
评论 4
收藏 已收藏
分享
返回顶部
t101706
驱动开发/核心开发 21,620 成员 21,709 内容