WEB开发网
开发学院操作系统windows 2008 深度剖析WinPcap之(三)——所涉及的Windows驱动基... 阅读

深度剖析WinPcap之(三)——所涉及的Windows驱动基础知识

 2009-09-11 00:00:00 来源:WEB开发网   
核心提示: 1.1.2 设备对象(DEVICE_OBJECT)设备对象保存设备特征和状态的信息,一个设备对象表示一个逻辑的、虚拟的或物理的设备,深度剖析WinPcap之(三)——所涉及的Windows驱动基础知识(3),由一个驱动对象操控设备对象的I/O请求,每一个内核模式的驱动必须创建设备对象,设备链表第

1.1.2        设备对象(DEVICE_OBJECT)

设备对象保存设备特征和状态的信息。一个设备对象表示一个逻辑的、虚拟的或物理的设备,由一个驱动对象操控设备对象的I/O请求。每一个内核模式的驱动必须创建设备对象,通过调用IoCreateDevice一次或多次。

每个驱动程序会创建一个或多个设备对象,用DEVICE_OBJECT数据结构表示。每个设备对象有一个指针(NextDevice)指向下一个设备对象,从而形成一个设备链表。设备链表第一个设备是由驱动对象结构体中DeviceObject指明的。

设备对象数据结构在wdm.h文件中的定义如下。

typedef struct DECLSPEC_ALIGN(MEMORY_ALLOCATION_ALIGNMENT) _DEVICE_OBJECT
{
    CSHORT Type;
    USHORT Size;
    LONG ReferenceCount;
    struct _DRIVER_OBJECT *DriverObject;
    struct _DEVICE_OBJECT *NextDevice;
    struct _DEVICE_OBJECT *AttachedDevice;
    struct _IRP *CurrentIrp;
    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;
 
typedef struct _DEVICE_OBJECT *PDEVICE_OBJECT;

上一页  1 2 3 4 5 6  下一页

Tags:深度 剖析 WinPcap

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接