IoCreateDevice函式概述,驱动中调用此函式来创建设备对象。
基本介绍
- 外文名:IoCreateDevice()
- 作用:调用此函式来创建设备对象
- 调用要求:包含档案:wdm.h,ntddk.h
- 领域:计算机
函式声明
IoCreateDevice函式用于创建常规的设备对象.
NTSTATUS IoCreateDevice
(
IN PDRIVER_OBJECT DriverObject,
IN ULONG DeviceExtensionSize,
IN PUNICODE_STRING DeviceNameOPTIONAL,
IN DEVICE_TYPE DeviceType,
IN ULONG DeviceCharacteristics,
IN BOOLEAN Exclusive,
OUT PDEVICE_OBJECT *DeviceObject
);
参数
参数说明
DriverObject
一个指向调用该函式的驱动程式对象.每一个驱动程式在它的DriverEntry过程里接收一个指向它的驱动程式对象.
WDM功能和过滤驱动程式也在他们的AddDevice过程接受一个驱动程式对象的指针.
DeviceExtensionSize
指定驱动程式为设备扩展对象而定义的结构体的大小.
DeviceName
(可选的参数)指向一个以零结尾的包含Unicode字元串的缓冲区,那是这个设备的名称,该字元串必须是一个完整的设备路径名.
WDM功能驱动程式和过滤驱动程式它们的设备对象没有名字.
注意:如果设备名未提供(即这个参数是NULL),IoCreateDevice创建的设备对象将不会有一个DACL与之相关联.
DeviceType
指定一个由一个系统定义的FILE_DEVICE_XXX常量,表明了这个设备的类型
(如FILE_DEVICE_DISK,FILE_DEVICE_KEYBOARD等),或供应商定义的一种新型设备的类型.
DeviceCharacteristics
指定一个或多个系统定义的常量,连线在一起,提供有关驱动程式的设备其他信息.对于可能的设备特徵信息,
见DEVICE_OBJECT结构体.
Exclusive
如果指定设备是独占的,大部分驱动程式设定这个值为FALSE,如果是独占的话设定为TRUE,非独占设定为FALSE.
DeviceObject
一个指向DEVICE_OBJECT结构体指针的指针,这是一个指针的指针,指向的指针用来接收DEVICE_OBJECT结构体的指针.
返回值
IoCreateDevice函式成功时返回STATUS_SUCCESS,失败时返回适当的NTSTATUS错误代码.这时这个函式
返回值 STATUS_INSUFFICIENT_RESOURCES
STATUS_OBJECT_NAME_EXISTS
STATUS_OBJECT_NAME_COLLISION
调用要求
包含档案:wdm.h,ntddk.h