NtCreateFile (NTCreateFile 和 CreateFile)

SEO教程2年前发布 jdkjadmin
11 00
淘宝闪购红包搜88744,有25元大红包

👇复制口令打开淘宝免单奶茶和25红包👇

¥XT7U4sdjF9I¥/ HU7405

CreateFile

简介

NtCreateFile 是 Windows NT 内核模式中用于创建文件对象的系统调用。它是 CreateFile 函数的用户模式等效项。NtCreateFile 用于创建、打开或截断文件、目录或其他对象。

原型


NTSTATUS NtCreateFile(OUT PHANDLE FileHandle,IN ACCESS_MASK DesiredAccess,IN POBJECT_ATTRIBUTES ObjectAttributes,OUT PIO_STATUS_BLOCK IoStatusBlock,IN PLARGE_INTEGER AllocationSize OPTIONAL,IN ULONG FileAttributes,IN ULONG ShareAccess,IN ULONG CreateDisposition,IN ULONG CreateOptions,IN PVOID EaBuffer OPTIONAL,IN ULONG EaLength
);

参数

  • FileHandle: 创建文件的句柄。
  • DesiredAccess: 对文件的请求访问权限。
  • ObjectAttributes: 指向 OBJECT_ATTRIBUTES 结构的指针,包含要创建的对象的名称安全描述符。
  • IoStatusBlock: 指向 IO_STATUS_BLOCK 结构的指针,用于接收操作的状态。
  • AllocationSize: 可选的 LARGE_INTEGER 结构,指定要为文件分配的初始大小。
  • FileAttributes: 文件的属性标志。
  • ShareAccess: 指定其他进程可以访问文件的权限。
  • CreateDisposition: 指定如何处理现有文件。
  • CreateOptions: 指定其他创建选项。
  • EaBuffer: 可选的缓冲区,指向扩展属性数据。
  • EaLength: EaBuffer 的长度。

返回值

NtCreateFile 返回一个 NTSTATUS 值,表示操作的状态。成功时,返回值为 STATUS_SUCCESS。

与 CreateFile 的比较

NtCreateFile 是 CreateFile 函数的用户模式等效项。它比 CreateFile 具有更多功能,包括:

  • 指定文件属性的选项。
  • 使用扩展属性的选项。
  • 在不同文件系统上工作的选项。

一般情况下,使用 CreateFile 函数创建文件就足够了。但是,如果需要更高级的功能,则可以使用 NtCreateFile。

使用示例


include NTSTATUS CreateFile(PWCHAR FileName,ACCESS_MASK DesiredAccess,OBJECT_ATTRIBUTES ObjectAttributes,PIO_STATUS_BLOCK IoStatusBlock
) {return NtCreateFile(&FileHandle,DesiredAccess,&ObjectAttributes,IoStatusBlock,NULL,FILE_ATTRIBUTE_NORMAL,FILE_SHARE_READ | FILE_SHARE_WRITE,FILE_OVERWRITE_IF,FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT,NULL,0);
}

相关函数

  • CreateFile
  • OpenFile

参考资料


免费中文版ChatGPT

© 版权声明

相关文章