zoukankan      html  css  js  c++  java
  • 编写驱动的常用函数

    ★驱动入口函数(DriverEntry)
    DriverEntry是加载驱动的函数,由系统进程调用。其原型如下:
    NTSTATUS DriverEntry(
    IN PDRIVER_OBJECT pDriverObject, // 指向系统创建的驱动对象
    IN PUNICODE_STRING pRegistryPath // 指向驱动服务键的键名
    );

    ★创建设备对象(IoCreateDevice)
    NTSTATUS IoCreateDevice(
    IN PDRIVER_OBJECT DriverObject, // 指向驱动对象
    IN ULONG DeviceExtensionSize, // 设备扩展的字节数
    IN_OPT PUNICODE_STRING DeviceName, // 设备名称,可以为NULL
    IN DEVICE_TYPE DeviceType, // 设备类型
    IN ULONG DeviceCharacteristics, // 设备对象的特征
    IN BOOLEAN Exclusive; // 设置设备对象是否在内核模式下使用,一般为TRUE
    OUT PDEVICE_OBJECT *DeviceObject // 保存创建好的设备对象的地址
    );

    ★创建符号链接(IoCreateSymbolicLink)
    NTSTATUS IoCreateSymbolicLink(
    IN PUNICODE_STRING SymbolicLinkName, // 设备的符号链接的名称
    IN PUNICODE_STRING DeviceName, // 设备名称
    );

    说明:内核模式下,符号链接以"??"开头;用户模式下,符号链接以"\."开头。如C盘:
    内核模式:"??C:";用户模式:"??C:"。

    ★删除符号链接(IoDeleteSymbolicLink)
    NTSTATUS IoDeleteSymbolicLink(
    IN PUNICODE_STRING SymbolicLinkName // 符号链接的名称
    );

    ★删除设备对象(IoDeleteDevice)
    VOID IoDeleteDevice(
    IN PDEVICE_OBJECT DeviceObject // 设备对象的指针
    );

  • 相关阅读:
    java入门第一篇:h5和CSS的基础学习及思考。
    Dubbo-入门到精通(一)
    跳表(skipList)的原理和java实现
    Springboot
    zookeeper 常用命令及znode简介
    Zookeeper 实现分布式锁服务
    Golang 基础
    ipython notebook 如何修改一开始打开的文件夹路径
    Loadrunner11配置Jdk,以及是否成功配置验证
    Redis学习
  • 原文地址:https://www.cnblogs.com/enjoy-life-everyday/p/3472682.html
Copyright © 2011-2022 走看看