编写适用于 Oracle® Solaris 11.2 的设备驱动程序

退出打印视图

更新时间: 2014 年 9 月
 
 

序列化

通常,驱动程序在持有互斥锁时不应调用 USBA 函数。因此,客户机驱动程序中的竞态条件可能很难防止。

不允许在处理异步事件(如断开连接或 CPR)的同时运行正常操作代码。这些类型的异步事件通常会清理和中断管道,可能会破坏正常操作代码。

一种管理竞态条件和保护正常操作代码的方法是,编写可以获取和释放独占访问同步对象的序列化工具。您可以按以下方法编写序列化工具:通过调用 USBA 函数安全地持有同步对象。usbskel 驱动程序样例中就采用了这种方法。