CreateFile详解
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_ALWAYS 或 OPEN_ALWAYS ,GetLastError 也会设为 ERROR_ALREADY_EXISTS。
CreateFile详解相关推荐
- PE文件详解(教程1-7)
PE文件详解(教程1-7) ========================================= PE教程1: PE文件格式一览 PE 的意思就是 Portable Executable ...
- c#endread怎么打印出来_C#编程直接发送打印机命令到打印机及ZPL常用的打印命令详解...
本文主要向大家介绍了C#编程直接发送打印机命令到打印机及ZPL常用的打印命令详解,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助. using System; using System.Co ...
- 15、Windows驱动开发技术详解笔记(11) 基本概念
9.Windows驱动程序的入口函数规定为_DriverEntry@8,所以用C++编写时要用extern. 驱动程序中,不能使用编译器运行时函数,甚至C语言中的malloc,C++的new函数都不能 ...
- java file 实例_Java File类的详解及简单实例
Java File类的详解及简单实例 1. File():构造函数,一般是依据文件所在的指定位置来创建文件对象. CanWrite():返回文件是否可写. CanRead():返回文件是否可读. Co ...
- DeviceIOControl详解-各个击破
DeviceIoControl这个api我们用的不多,但是很重要,有时会帮助我们实现一些特别的需求, 如获取硬件设备信息.与硬件设备通信(读写数据)等,对照msdn,下面我们详细解释一下这个api的用 ...
- 《Windows驱动开发技术详解》学习笔记
Abstract 如果推荐 Windows 驱动开发的入门书,我强烈推荐<Windows驱动开发技术详解>.但是由于成书的时间较早,该书中提到的很多工具和环境都已不可用或找不到,而本文 ...
- Windows API函数大全---附:windows运行命令详解
1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连 ...
- VC++深入详解学习笔记
VC++深入详解学习笔记 Lesson1: Windows程序运行原理及程序编写流程 Lesson2: 掌握C++基本语法 Lesson3: MFC框架程序剖析 Lesson4: 简单绘图 Lesso ...
- Android 进阶——Framework 核心之Android Storage Access Framework(SAF)存储访问框架机制详解(二)
文章大纲 引言 一.DirectFragment 1.当选中DirectoryFragment中RecyclerView的Item时 2.选中DirectoryFragment中RecyclerVie ...
最新文章
- clickhouse修改时区
- 深入剖析.NET运行机制
- 大连理工大学 计算机复试分数线,2020大连理工大学考研复试分数线已公布
- 【Python】Flask框架系列(二):安装、配置文件、增删改查
- 计算机英语课程背景,专家讲座第十五讲:信息化背景下高质量大学英语课程建设与教学设计...
- linux shell 字符串操作详解 (长度,读取,替换,截取,连接,对比,删除,位置 )
- elementUI vue 编辑中的input的验证残留清除
- RT-Thread移植
- linux mysql 8.0启动不了_MySQL官方源从8.0.3直接yum升级到8.0.4后无法启动
- 用python写一个hello world程序
- Oracle.start with … connect by [… and] prior…order siblings by …
- idea 编译jar_Flink1.9.2源码编译和使用
- OpenCasCade默认的小坐标系的构建
- 深入浅出Yolo系列之Yolox核心基础完整讲解
- MySQL数据库—SQL汇总
- 极光 短信验证出现403
- 前端做CA认证碰到的坑
- 安卓 linux服务器文件夹,Android系统下根目录下文件
- Oxygen XML Editor Mac版(基于Java的XML编辑器)
- icpc/ccpc退役贴