设备对象(DEVICE_OBJECT)
来源:互联网 发布:二维数组的定义方式 编辑:程序博客网 时间:2024/05/16 09:27
1.每个驱动程序会创建一个或多个设备对象(下文称DO),用DEVICE_OBJECT数据结构表示。每个DO都会有个指针指向下一个DO,因此就形成了一个DO链。DO链的第一个DO是由DRIVER_OBJECT 结构体中的 PDRIVER_EXTENSION 指明的.DO保存DO特征和状态信息,以下是字段信息:
typedef struct _DEVICE_OBJECT { CSHORT Type; USHORT Size; LONG ReferenceCount; struct _DRIVER_OBJECT *DriverObject; //point to the DriverObject struct _DEVICE_OBJECT *NextDevice;// point to the next DO to make the links struct _DEVICE_OBJECT *AttachedDevice;//如果有更高一层的驱动附加到这个驱动的时候,AttachedDevice指向//的就是那个更高一层的驱动 struct _IRP *CurrentIrp;//在使用StartIO例程的时候,此域指向的是当前IRP结构 PIO_TIMER Timer; ULONG Flags; // See above: DO_... ULONG Characteristics; // See ntioapi: FILE_... __volatile PVPB Vpb; PVOID DeviceExtension; DEVICE_TYPE DeviceType; CCHAR StackSize; //在多层驱动情况下,驱动与驱动之间会形成类似堆栈的结构。IRP会依次从最高层次传递到最底层。 union { LIST_ENTRY ListEntry; WAIT_CONTEXT_BLOCK Wcb; } Queue; ULONG AlignmentRequirement; KDEVICE_QUEUE DeviceQueue; KDPC Dpc; // // The following field is for exclusive use by the filesystem to keep // track of the number of Fsp threads currently using the device // ULONG ActiveThreadCount; PSECURITY_DESCRIPTOR SecurityDescriptor; KEVENT DeviceLock; USHORT SectorSize; USHORT Spare1; struct _DEVOBJ_EXTENSION *DeviceObjectExtension; //自己定义特殊结构体。根据设备的需要,需要填写相应的设备类型。当制作虚拟设备时,应选择FILE_DEVICE_UNKNOWN//类型的设备 PVOID Reserved;} DEVICE_OBJECT;
- 设备对象(DEVICE_OBJECT)
- 设备对象(DEVICE_OBJECT)
- 设备对象(DEVICE_OBJECT)
- 设备对象(DEVICE_OBJECT)
- 设备对象(DEVICE_OBJECT)
- 设备对象(DEVICE_OBJECT)-----------------设备名称
- 设备对象(DEVICE_OBJECT)-----------------主要成员
- 设备对象(DEVICE_OBJECT)-----------------主要成员 .
- DEVICE_OBJECT
- DRIVER_OBJECT & DEVICE_OBJECT
- DRIVER_OBJECT & DEVICE_OBJECT
- DRIVER_OBJECT & DEVICE_OBJECT
- DEVICE_OBJECT ;struct _DEVICE_OBJECT *AttachedDevice; // 附载的设备,与AttachedTo域构成双链表关系
- 设备对象
- DRIVER_OBJECT和DEVICE_OBJECT的关系
- DRIVER_OBJECT,DEVICE_OBJECT 结构体分析
- 驱动对象-设备对象-设备栈
- 物理设备对象和功能设备对象
- 关于hibernate的缓存使用
- 第15周上机项目一 数组大折腾
- 函数中的arguments是一个普通对象,非数组
- JavaScript-创建日志调试对象与alert说拜拜
- 面向对象----抽象的应用
- 设备对象(DEVICE_OBJECT)
- 设置 Xcode 自动生成代码片段
- 網站如何使用svg
- NoSQL的现状
- Sql UNION 合并多个结果集并排序
- java web开发学习-6 FLEX
- Win32 Desktop Apps (Visual C++)
- uva 11464 - Even Parity(暴力枚举)
- 摩根斯丹利(大摩)面试经历