Window驱动程序中重要的数据结构

DRIVER_OBJECT

 

DRIVER_OBJECT是一个微软未完全公开的,只有部分公开的数据成员。

可见的成员函数

PDEVICE_OBJECT               DeviceObject      //指向这个驱动创建的设备 设备是一个链表,该指针指向链表的头节点。

PDRIVER_EXTENSION        DriverExtension //驱动扩展信息。

PUNICODE_STRING           HardwareDatabase  //指向 数据库中硬件设备的名字

PFAST_IO_DISPATCH        FastIoDispatch   //指向 fast I/O 入口地址

PDRIVER_INITIALIZE         DriverInit            //由I/O管理器设置的指向DriverEntry函数的入口点

PDRIVER_STARTIO             DriverStartIo      //由DriverEntry初始化的驱动 StartIo 函数的入口点。若没该函数则是NULL

PDRIVER_DISPATCH           MajorFunction    //是一个派遣函数表 每项指向一个IRP派遣函数。

 

网上有 DRIVER_OBJECT  数据结构的完整信息。

 

DEVICE_OBJECT

 

typedef struct _DEVICE_OBJECT {
  CSHORT                      Type;                                 //用来指明对象类型  驱动是3  是一个只读属性
  USHORT                      Size;                                  //设备对象的大小                  
  LONG                        ReferenceCount;                 //是一个只读属性
  struct _DRIVER_OBJECT *     DriverObject;          //指向驱动设备   是一个只读属性

  struct _DEVICE_OBJECT *     NextDevice;            //指向下一个设备   是一个可读可写  一般由I/O管理器传入的。
  struct _DEVICE_OBJECT *     AttachedDevice;     //附加的设备对象
  struct _IRP *               CurrentIrp;                       //当使用 StartIo  时指向当前IRP
  PIO_TIMER                   Timer;                              //
  ULONG                       Flags;
  ULONG                       Characteristics;
  __volatile PVPB             Vpb;
  PVOID                       DeviceExtension;
  DEVICE_TYPE                 DeviceType;
  CCHAR                       StackSize;
  union {
    LIST_ENTRY         ListEntry;
    WAIT_CONTEXT_BLOCK Wcb;
  } Queue;
  ULONG                       AlignmentRequirement;
  KDEVICE_QUEUE               DeviceQueue;
  KDPC                        Dpc;
  ULONG                       ActiveThreadCount;
  PSECURITY_DESCRIPTOR        SecurityDescriptor;
  KEVENT                      DeviceLock;
  USHORT                      SectorSize;
  USHORT                      Spare1;
  struct _DEVOBJ_EXTENSION  * DeviceObjectExtension;       //指向设备的扩展对象
  PVOID                       Reserved;
} DEVICE_OBJECT, *PDEVICE_OBJECT;

 

 


更多详细内容还是看MSDN。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值