驱动开发学习笔记02:DEVICE_OBJECT对象数据结构
2011-08-08 14:07
573 查看
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;//使用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;
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;
PVOID Reserved;
} DEVICE_OBJECT;
typedef struct _DEVICE_OBJECT *PDEVICE_OBJECT;
相关文章推荐
- DOM(Document Object Module,文档对象模型)为JavaScript提供完整,全面控制网页结构与内容的对象
- 判断常见的数据库数据结构对象是否存在
- Sql2012如何将远程服务器数据库及表、表结构、表数据导入本地数据库 自定义日志记录功能,按日记录,很方便 C#常量和字段以及各种方法的语法总结 类型,对象,线程栈,托管堆在运行时的关系,以及clr如何调用静态方法,实例方法,和虚方法 asp.net webapi 自定义身份验证
- CoreData 数据传输对象DTO(data transfer object)
- 一段由数据库结构生成相应数据对象的代码(4)(5)
- (转)在.NET程序运行过程中,什么是堆,什么是栈?什么情况下会在堆(栈)上分配数据?它们有性能上的区别吗?“结构”对象可能分配在堆上吗?什么情况下会发生,有什么需要注意的吗?
- 把Object对象转换成XML格式的数据
- laravel查询得到的数据(为对象object)无法进行数组循环遍历,而且不能用数组方式访问和查看的原因以及解决方法
- 数据结构与对象
- 数据对象剪贴板传输,COleDataSource和COleDataObject用法
- 前台js获取到后台json数据,eval解析json后,日期(object)对象转换为date日期格式显示
- js中数据结构数组Array、映射Map、集合Set、对象、JSON
- Windows对象 (Object) 结构
- 贫血模型;DTO:数据传输对象(Data Transfer Object);AutoMapper ;Domain Model(领域模型);DDD(领域驱动设计)
- 重现Redis--数据结构与对象(二)
- js将对象数组中具有父子关系的数据换成树形结构
- 设备对象(DEVICE_OBJECT)
- 我知道点redis-数据结构与对象(链表)
- Windows对象 (Object) 结构
- 设备对象(DEVICE_OBJECT)