文件名称:常见的Windows驱动程序开发可靠性问题
文件大小:231KB
文件格式:PDF
更新时间:2011-12-03 03:17:23
Windows驱动程序开发
本文提供关于为 Microsoft Windows 家族操作系统编写驱动程序的信息。其中描述了大量常见错误并为驱动程序开发人员提供了查找、纠正和防止这些错误的建议方法。 本白皮书包括以下内容: • 内核模式代码中的用户模式地址 • 探测 • METHOD_NEITHER IOCTL 和 FSCTL 中传递的地址 • 缓冲 I/O 请求中嵌入的指针 • 在用户环境中使用句柄 • 驱动程序 I/O 方式及其权衡 • 缓冲 I/O • 直接 I/O • 既未缓冲也非直接的 I/O (METHOD_NEITHER) • 设备状态验证 • 清除和关闭例程 • 设备控制例程 • 同步 • 共享访问 • 锁和禁用 APC • 处理验证 • 请求创建和打开文件和设备 • 在设备命名空间中打开文件 • 长文件名 • 意外的 I/O 请求 • 对直接设备打开句柄的相对打开请求 • 扩展属性 • 驱动程序卸载例程 • 工作项 • 驱动程序创建的线程 • 计时器 28 • 排队 DPC • IoCompletion 例程 • 可分页的驱动程序和 DPC • 用户模式 API • NtReadFile 和 NtWriteFile • TransmitFile • StartIo 递归 • 传递和完成 IRP • 错误地复制堆栈位置 • 为驱动程序未处理的 IRP 返回错误的状态 • 丢失 IRP 或多次完成 IRP • 从驱动程序发出的 IRP 返回错误的状态 • 奇数长度的 Unicode 缓冲区 • 内存不足时的内存池分配 • 行动指南和资源