CreateFile详解

The CreateFile function creates or opens the following objects and returns a handle that can be used to access ,the object:

CreateFile 函数创建或打开下列对象,并返回一个可以用来访问这些对象的句柄。
* files (文件)
* pipes
* mailslots (邮槽)
* communications resources (通信资源)
* disk devices(Windows NT only) ( 磁盘驱动器)
* consoles (控制台)
* directories(open only) (文件夹)

HANDLE CreateFile(LPCTSTR lpFileName,        // 指向文件名的指针 DWORD dwDesiredAccess,     // 访问模式(写 / 读) DWORD dwShareMode,         // 共享模式 LPSECURITY_ATTRIBUTES lpSecurityAttributes, // 指向安全属性的指针 DWORD dwCreationDisposition,   // 如何创建 DWORD dwFlagsAndAttributes,    // 文件属性 HANDLE hTemplateFile           // 用于复制文件句柄
);

Parametes (参数列表)

参数

类型及说明

lpFileName

String ,要打开的文件的名字

dwDesiredAccess

Long ,如果为 GENERIC_READ 表示允许对设备进行读访问;如果为 GENERIC_WRITE 表示允许对设备进行写访问(可组合使用);如果为零,表示只允许获取与一个设备有关的信息

dwShareMode

Long ,零表示不共享; FILE_SHARE_READ 和 / 或 FILE_SHARE_WRITE 表示允许对文件进行共享访问

lpSecurityAttributes

SECURITY_ATTRIBUTES ,指向一个 SECURITY_ATTRIBUTES 结构的指针,定义了文件的安全特性(如果操作系统支持的话)

dwCreationDisposition

Long ,下述常数之一:

CREATE_NEW

创建文件;如文件存在则会出错

CREATE_ALWAYS

创建文件,会改写前一个文件

OPEN_EXISTING

文件必须已经存在。由设备提出要求

OPEN_ALWAYS

如文件不存在则创建它

TRUNCATE_EXISTING

讲现有文件缩短为零长度

dwFlagsAndAttributes

Long ,一个或多个下述常数

FILE_ATTRIBUTE_ARCHIVE

标记归档属性

FILE_ATTRIBUTE_COMPRESSED

将文件标记为已压缩,或者标记为文件在目录中的默认压缩方式

FILE_ATTRIBUTE_NORMAL

默认属性

FILE_ATTRIBUTE_HIDDEN

隐藏文件或目录

FILE_ATTRIBUTE_READONLY

文件为只读

FILE_ATTRIBUTE_SYSTEM

文件为系统文件

FILE_FLAG_WRITE_THROUGH

操作系统不得推迟对文件的写操作

FILE_FLAG_OVERLAPPED

允许对文件进行重叠操作

FILE_FLAG_NO_BUFFERING

禁止对文件进行缓冲处理。文件只能写入磁盘卷的扇区块

FILE_FLAG_RANDOM_ACCESS

针对随机访问对文件缓冲进行优化

FILE_FLAG_SEQUENTIAL_SCAN

针对连续访问对文件缓冲进行优化

FILE_FLAG_DELETE_ON_CLOSE

关闭了上一次打开的句柄后,将文件删除。特别适合临时文件

也可在 Windows NT 下组合使用下述常数标记:

SECURITY_ANONYMOUS , SECURITY_IDENTIFICATION , SECURITY_IMPERSONATION ,SECURITY_DELEGATION , SECURITY_CONTEXT_TRACKING , SECURITY_EFFECTIVE_ONLY

hTemplateFile

Long ,如果不为零,则指定一个文件句柄。新文件将从这个文件中复制扩展属性

Return (返回值)

如执行成功,则返回文件句柄。
INVALID_HANDLE_VALUE 表示出错,会设置 GetLastError 。即使函数成功,但若文件存在,且指定了 CREATE_ALWAYSOPEN_ALWAYSGetLastError 也会设为 ERROR_ALREADY_EXISTS

CreateFile详解相关推荐

  1. PE文件详解(教程1-7)

    PE文件详解(教程1-7) ========================================= PE教程1: PE文件格式一览 PE 的意思就是 Portable Executable ...

  2. c#endread怎么打印出来_C#编程直接发送打印机命令到打印机及ZPL常用的打印命令详解...

    本文主要向大家介绍了C#编程直接发送打印机命令到打印机及ZPL常用的打印命令详解,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助. using System; using System.Co ...

  3. 15、Windows驱动开发技术详解笔记(11) 基本概念

    9.Windows驱动程序的入口函数规定为_DriverEntry@8,所以用C++编写时要用extern. 驱动程序中,不能使用编译器运行时函数,甚至C语言中的malloc,C++的new函数都不能 ...

  4. java file 实例_Java File类的详解及简单实例

    Java File类的详解及简单实例 1. File():构造函数,一般是依据文件所在的指定位置来创建文件对象. CanWrite():返回文件是否可写. CanRead():返回文件是否可读. Co ...

  5. DeviceIOControl详解-各个击破

    DeviceIoControl这个api我们用的不多,但是很重要,有时会帮助我们实现一些特别的需求, 如获取硬件设备信息.与硬件设备通信(读写数据)等,对照msdn,下面我们详细解释一下这个api的用 ...

  6. 《Windows驱动开发技术详解》学习笔记

    Abstract   如果推荐 Windows 驱动开发的入门书,我强烈推荐<Windows驱动开发技术详解>.但是由于成书的时间较早,该书中提到的很多工具和环境都已不可用或找不到,而本文 ...

  7. Windows API函数大全---附:windows运行命令详解

    1. API之网络函数             WNetAddConnection 创建同一个网络资源的永久性连接             WNetAddConnection2 创建同一个网络资源的连 ...

  8. VC++深入详解学习笔记

    VC++深入详解学习笔记 Lesson1: Windows程序运行原理及程序编写流程 Lesson2: 掌握C++基本语法 Lesson3: MFC框架程序剖析 Lesson4: 简单绘图 Lesso ...

  9. Android 进阶——Framework 核心之Android Storage Access Framework(SAF)存储访问框架机制详解(二)

    文章大纲 引言 一.DirectFragment 1.当选中DirectoryFragment中RecyclerView的Item时 2.选中DirectoryFragment中RecyclerVie ...

最新文章

  1. clickhouse修改时区
  2. 深入剖析.NET运行机制
  3. 大连理工大学 计算机复试分数线,2020大连理工大学考研复试分数线已公布
  4. 【Python】Flask框架系列(二):安装、配置文件、增删改查
  5. 计算机英语课程背景,专家讲座第十五讲:信息化背景下高质量大学英语课程建设与教学设计...
  6. linux shell 字符串操作详解 (长度,读取,替换,截取,连接,对比,删除,位置 )
  7. elementUI vue 编辑中的input的验证残留清除
  8. RT-Thread移植
  9. linux mysql 8.0启动不了_MySQL官方源从8.0.3直接yum升级到8.0.4后无法启动
  10. 用python写一个hello world程序
  11. Oracle.start with … connect by [… and] prior…order siblings by …
  12. idea 编译jar_Flink1.9.2源码编译和使用
  13. OpenCasCade默认的小坐标系的构建
  14. 深入浅出Yolo系列之Yolox核心基础完整讲解
  15. MySQL数据库—SQL汇总
  16. 极光 短信验证出现403
  17. 前端做CA认证碰到的坑
  18. 安卓 linux服务器文件夹,Android系统下根目录下文件
  19. Oxygen XML Editor Mac版(基于Java的XML编辑器)
  20. icpc/ccpc退役贴

热门文章

  1. Android Java try catch 失效
  2. R| brainconn功能连接作图工具
  3. 南欧阳光——行程定制旅游网站
  4. 用PYTHON控制电脑键盘鼠标源码
  5. 【区块链2.0实战学习笔记】————10、Geth的使用
  6. c语言字符常量的界限符,关于C语言的字符常量和符号常量
  7. 怎么利用服务器端口爆破网站,渗透测试:域名爆破及端口扫描
  8. idea打包生成generated文件,强迫症就很烦
  9. 要配置家庭网中的计算机 需要启动,怎样设置组成家庭网络?
  10. 人手必备的Docker小手册