窝米逗佛~ 2019-05-31 11:10 采纳率: 100%
浏览 517
已采纳

ZwCreateFile 创建文件夹 卡死

NTSTATUS KernelCreateDirectory( PUNICODE_STRING Path )
{
DbgPrint( "BEG KernelCreateDirectory %wZ \n", Path );
    HANDLE Handle = NULL;
    IO_STATUS_BLOCK io_status = { 0 };
    OBJECT_ATTRIBUTES obj_attr = { 0 };
    NTSTATUS ntStatus;

    InitializeObjectAttributes( &obj_attr, Path,
        OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE,       // 与现有对象的名称进行匹配时,将使用不区分大小写的比较   并且 只能在内核模式下访问句柄
        NULL,
        NULL );

        ntStatus = ZwCreateFile( &Handle, FILE_READ_ATTRIBUTES,//SYNCHRONIZE | MAXIMUM_ALLOWED,
            &obj_attr, &io_status,
            NULL,
            FILE_ATTRIBUTE_NORMAL,  // 正常文件属性
            FILE_SHARE_READ,        // 共享读
            FILE_OPEN_IF,           // 文件存在 则 打开 不存在则创建
            FILE_DIRECTORY_FILE,    // 该文件是目录
            NULL, 0                 // 必须为空
            );
            ZwClose( Handle );
    Handle = NULL;
    DbgPrint( "KernelCreateDirectory %wZ suscess \n" ,Path);
    return ntStatus;
}

以上是 在创建文件夹 传入的路径没有问题,但是在打开多次后就会出现卡死在zwcreatefile...测试了各种方法 如加锁、修改参数 都不行 , 搞不懂它卡死是因为什么?
希望有人能给出原因 或者解决办法

  • 写回答

2条回答 默认 最新

  • 窝米逗佛~ 2019-08-27 13:49
    关注

    过去好久了,并没有找到原因,也不知道怎么处理,猜测可能是因为目录下的文件频繁访问出现的这种情况?
    后来换了minifilter 不再频繁访问就没出现这个问题了,关了!~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)