指针到驱动对象 (局部_驱动对象, 驱动对象, 168)
' #IRP_MJ_CREATE
局部_驱动对象.MajorFunction [1] = 启动过程
' #IRP_MJ_CLOSE
局部_驱动对象.MajorFunction [3] = 停止过程
' #IRP_MJ_DEVICE_CONTROL
局部_驱动对象.MajorFunction [15] = 分派过程
' #IRP_MJ_INTERNAL_DEVICE_CONTROL
局部_驱动对象.驱动卸载过程 = 卸载过程
驱动对象到指针 (驱动对象, 局部_驱动对象, 168)
局部_符号名称 = “\Device\” + 符号名称
RtlInitAnsiString (as_设备名称, 局部_符号名称)
RtlAnsiStringToUnicodeString (us_设备名称, as_设备名称, 真)
返回值 = Io创建设备 (驱动对象, 0, us_设备名称, 34, 256, 假, 设备对象)
.如果真 (返回值 ≠ 0)
RtlFreeUnicodeString (us_设备名称)
返回 (#驱动_操作失败)
.如果真结束
局部_符号名称 = “\??\” + 符号名称
RtlInitAnsiString (as_符号名称, 局部_符号名称)
RtlAnsiStringToUnicodeString (us_符号名称, as_符号名称, 真)
返回值 = Io创建符号链接 (us_符号名称, us_设备名称)
RtlFreeUnicodeString (us_设备名称)
RtlFreeUnicodeString (us_符号名称)
.判断开始 (返回值 ≠ 0)
Io删除设备 (设备对象)
返回 (#驱动_操作失败)
.默认
返回 (#驱动_操作成功)