编写设备驱动程序

对象锁定

为内存对象分配 DMA 资源之前,必须防止该对象移动。否则,在设备尝试向该对象进行写入时,系统会从内存中删除该对象。缺少对象会导致数据传送失败,并且可能损坏系统。防止内存对象在 DMA 传送过程中移动的过程称为锁定对象

以下对象类型不要求显式锁定:

对于其他对象(如用户空间中的缓冲区),必须使用 physio(9F)ddi_umem_lock(9F) 来锁定对象。使用这些函数来锁定对象通常在字符设备驱动程序的 read(9E)write(9E) 例程中执行。有关示例,请参见数据传输方法