转:驱动开发函数IoCreateDevice /IoCreateSymbolicLink / IoDeleteDevice
来源:互联网 发布:学java web看什么书 编辑:程序博客网 时间:2024/06/14 18:40
转自:http://hi.baidu.com/alalmn/item/f02d5c866fc2d6eae496e089
IoCreateDevice 为驱动创建一个设备对象 格式如下:
NTSTATUS IoCreateDevice(
IN PDRIVER_OBJECT DriverObject,
IN ULONG DeviceExtensionSize,
IN PUNICODE_STRING DeviceName OPTIONAL,
IN DEVICE_TYPE DeviceType,
IN ULONG DeviceCharacteristics,
IN BOOLEAN Exclusive,
OUT PDEVICE_OBJECT *DeviceObject );
参数:
DriverObject
为指针调用驱动程序对象。每个驱动程序接收一个参数的指针。
DeviceExtensionSize //0
给_DEVICE_OBJECT.DeviceExtension指定内存空间大小,具体看自己定义结构的大小
DeviceName
设备名字
DeviceType
设备类型 这里我们用FILE_DEVICE_UNKNOWN
DeviceCharacteristics
设备特征信息 一般为0
Exclusive
是否指定设备为独占 是为TRUE,否为FALSE
DeviceObject
指针变量接收一个指向新创建的DEVICE_OBJECT结构。用来回传数据
返回值
调用成功会返回 STATUS_SUCCESS 如果出错会返回下列值
STATUS_INSUFFICIENT_RESOURCES//资源不足
STATUS_OBJECT_NAME_EXISTS //指定对象名存在
STATUS_OBJECT_NAME_COLLISION//对象名有冲突
///////////////////////////////////////////////////////////////
IoCreateSymbolicLink
创建一个设备链接。驱动程序虽然有了设备名称,但是这种设备名称只能在内核 态可见,而对于应用程序是不可见的,因此,驱动需要要暴露一个符号链接,该链接指向真正的设备名称
NTSTATUS IoCreateSymbolicLink(
IN PUNICODE_STRING SymbolicLinkName,
IN PUNICODE_STRING DeviceName );
参数:
SymbolicLinkName
Unicode字符串指针,是一个用户态可见的名称。
DeviceName
Unicode字符串指针,是驱动程序创建的设备对象名称。
Return Value
如果符号链接创建成功 返回STATUS_SUCCESS
///////////////////////////////////////////////////////////////
VOID IoDeleteDevice(
IN PDEVICE_OBJECT DeviceObject
);
参数
DeviceObject
PDEVICE_OBJECT类型的指针,指向需要删除的设备对象
无返回值
- 转:驱动开发函数IoCreateDevice /IoCreateSymbolicLink / IoDeleteDevice
- RtlInitUnicodeString、IoCreateDevice、IoCreateSymbolicLink、IoDeleteDevice 四个 API 驱动函数的使用
- IoCreateDevice /IoCreateSymbolicLink /DestinationString
- IoCreateSymbolicLink
- IoCreateDevice
- IoCreateDevice
- IoCreateDevice
- ReacOS源代码阅读之驱动--IoCreateDevice
- DO_DEVICE_INITIALIZING 创建设备 iocreatedevice windows内核开发
- IoDeleteDevice源码
- 驱动开发相关函数
- SetupCopyOEMInf函数 驱动开发
- SetupDiGetClassDevs函数 ,驱动开发
- 0.driverbase-驱动对象、设备对象、DriverEntry、IoCreateDevice、符号链接、DriverUnLoad、WDM
- IoCreateSymbolicLink函数的作用以及符号链接、设备名称之间的关系
- window驱动开发常用函数
- 驱动开发之 ZwCreateFile函数
- 驱动开发之 ZwWriteFile函数
- 文件上传下载--DiskFileUpload
- js实现自动设置框架载入页面高度的问题
- CSS border实现三角形
- cygwin下安装软件
- VC++编程实现镜像劫持
- 转:驱动开发函数IoCreateDevice /IoCreateSymbolicLink / IoDeleteDevice
- Hello World,一个简单的JSR 168 portlet
- linux下常用网络命令
- Maven项目不打包*.hbm.xml文件
- ArrayList1
- 两分钟彻底让你明白Android Activity生命周期(图文)!
- qt资源
- 实用的wordpress全站搜索替换插件search-and-replace中文版
- android webview onJsAlert只调用一次的问题