创建设备对象,用IoCreatDevice

创建设备对象,用IoCreatDevice(

                                           

 IN PDRIVER_OBJECT  DriverObject,//系统创建的驱动对象

                                           

 IN ULONG DeviceExtensionSize,//程序员自己定义的(在头文件中)设备扩展的大小                                                                                                   

 IN PUNICODE_STRING  DeviceName OPTIONAL,//设备名,可以为空,此时,I/O管理器会自动以一个数字作为该设备对象的名称

INDEVICE_TYPE  DeviceType,//设备类型

INULONG  DeviceCharacteristics,//对设备的进一步描述

INBOOLEAN   Exclusize,//是否一次只能进行一次IRP处理        

OUTPDEVICE_OBJECT  *DeviceObject)//新创建的设备对象

  具体代码如下

PDEVICE_OBJECT fdo;

         status = IoCreateDevice(

              DriverObject,

              sizeof(DEVICE_EXTENSION),

              NULL,//没有指定设备名

              FILE_DEVICE_UNKNOWN,

              0,

              FALSE,

              &fdo);

此时,功能设备对象,创建完毕,接着是将,功能设备对象FDO附加到物理设备对象上PDO。利用函数PDEVICE_OBJECT   IoAttachDeviceToDeviceStack(

                     IN PDEVICE_OBJECT  SourceDevice,//新创建的功能设备对象FDO

                      IN PDEVICE_OBJECT  TargetDevice//物理设备对象PDO

                 );

该函数调用成功的话返回一个设备对象,附加设备对象的设备对象,例如在这里,返回的是PDO,如果,Thereturned device object pointer can differ from TargetDevice if TargetDevice hadadditional drivers layered on top of it.如果该函数运行失败,则返回NULL。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值