IoCreateDevice /IoCreateSymbolicLink /DestinationString

来源:互联网 发布:军事仿真软件 编辑:程序博客网 时间:2024/06/05 20:50

http://hi.baidu.com/alalmn/blog/item/b496d3033b960c793912bb55.html

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

为指针调用驱动程序对象。每个驱动程序接收一个参数的指针,并将司机反对其DriverEntry例程。波分复用功能和筛选器驱动程序也可领取的AddDevice例程的驱动程序对象的指针。

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类型的指针,指向需要删除的设备对象

 

无返回值

///////////////////////////////////////////////////////////////

  VOID  RtlInitUnicodeString

 

  IN OUT PUNICODE_STRING  DestinationString,  

  IN     PCWSTR            SourceString  

  );

 

DestinationString

 需要初始化的指针PUNICODE_STRING

SourceString

指向一个以空结尾的Unicode字符串常量,用这个字符串来初始化DestinationString。

 

 

例子

PUNICODE_STRING  s;

RtlInitUnicodeString(s, L"宽字符");//s=L"宽字符";


原创粉丝点击