Creates or opens a file or I/O device. The most commonly used I/O devices are as follows: file, file stream, directory, physical disk, volume, console buffer, tape drive, communications resource, mailslot, and pipe. The function returns a handle that can be used to access the file or device for various types of I/O depending on the file or device and the flags and attributes specified.

函数原型如下:

HANDLE WINAPI CreateFile(
_In_ LPCTSTR lpFileName,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwShareMode,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_In_ DWORD dwCreationDisposition,
_In_ DWORD dwFlagsAndAttributes,
_In_opt_ HANDLE hTemplateFile
);

Return value

If the function succeeds, the return value is an open handle to the specified file, device, named pipe, or mail slot.

If the function fails, the return value is INVALID_HANDLE_VALUE. To get extended error information, call GetLastError.

Remarks

CreateFile was originally developed specifically for file interaction but has since been expanded and enhanced to include most other types of I/O devices and mechanisms available to Windows developers. This section attempts to cover the varied issues developers may experience when using CreateFile in different contexts and with different I/O types. The text attempts to use the word file only when referring specifically to data stored in an actual file on a file system. However, some uses of file may be referring more generally to an I/O object that supports file-like mechanisms. This liberal use of the term file is particularly prevalent in constant names and parameter names because of the previously mentioned historical reasons.

When an application is finished using the object handle returned by CreateFile, use the CloseHandle function to close the handle. This not only frees up system resources, but can have wider influence on things like sharing the file or device and committing data to disk. Specifics are noted within this topic as appropriate.

CreateFile是创建一个File的内核对象,而不是创建物理磁盘上的“文件”。

这里提出一个问题,为什么要使用CloseHandle关闭句柄

句柄是一种内核对象,系统维护着每一个内核对象,当每个内核对象引用记数为0时,系统就从内存中释放该对象,CloseHandle就是将该线程对象的引 用记数减1。所有的内核对象(包括线程Handle)都是系统资源,用了要还的,也就是说用完后一定要closehandle关闭之,如果不这么做,你系 统的句柄资源很快就用光了。CreateFile创建了一个内核对象,你如果不调用CloseHandle去关闭句柄,那它是无法自己释放的,所以在调用了CreateFile函数后,一定要记得调用CloseHandle

进一步在问,何谓内核对象

内核对象的数据结构只能被内核访问,因此应用程序无法在内存中找到这些数据结构并直接改变它们的内容当调用一个用于创建内核对象的函数时,该函数就返回一个用于标识该对象的句柄。如果将该句柄值传递给另一个进程中的一个线程,那么在另一个进程使用你的进程的句柄值所作的调用就会失败。如果想在多个进程中共享内核对象,要通过一定的机制。如对象句柄的继承性,命名对象,复制对象句柄。若要确定一个对象是否属于内核对象,最容易的方法是观察创建该对象所用的函数。
所以:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAewAAAA9CAIAAADgXc0JAAALbElEQVR4nO1dwXEcOQxkRHopGP1ddWEoAFc5CAXhBBSGv4pB77mHVXtzBLrR5HBWHrm7rqZmOSDQDYDQnixp29vb1to/vvrqq6++XvHa3t62hf99/74ZhmEYd4OHuGEYxoXhIW4YhnFheIgbhmFcGHca4q21mopmE4Gc3O5Tz78XRVc653JFcXscKMp5+SFO5qgSMyWWyKc041uO51DsZ2LDtUyYcYNP6WeD4H5DHGFvgyw7m84zWkkPWOeTOEfnhzTxEL1TQaIsyY+oa1Xdy+hxUbFRzLjBqh4rV0pKZH3TCoFcTdTduCfSIf7r+aG11p5e1gxxZaBEM30oIM/KRFAIKMQUDnFR9DOKeOxLbkP5EXWtrTvnnDrpDDiQ9n3oyGo6h4RVlE+c6Lo4Ex4ijRUXU+bG2YhD/OdTe3x+/fX8sGaI89K2cDj5Rt556BHZpfQlOZz85EQ5pcDj0EMcyU9nyVdQ6Lm6c7bcWOmf6I0oms6hzgeZla4646F2Td3q/RzpGecBfTtl2RD/CCP0TTzY6QlXnnbOkYciNXhYE2O0GDee0eWidsWG0NN1Lal7rHLkc7NJnxI+kXyse8qzcz6aQ4VPuZ37idLirqGVqJFY6uSNg7jfEE9fxoPKj4ckSfAQD2o8P2h7yqdcPK6Lg5x/9Gg6P7q343W/Xcs5VdaUK00jlrqO9JgCIn9vk7qN2omTdBfJnpIB4z74s4b4vrG6G3SGUU8Tm3RLJHyzSckrfAjDLRyJyEFRhDbOeRPzM6QrZRVjpY/IRl1vqR256uTEei3Moc4KkSydlD679dQ+dR7tUwnGSfgjhrhy5Q6J8zR6w+czxi0PmELyzk1/h/yge/Q0OtTrjmoRF5ENSgtZ6cggPkgpz2FJgxgoKhClspNFh3fuZ4NgZIi/fGvVj6ys+p54t7GziQ67WOhmCw035Cd9GX2mluXBW9v0yvmczo+ua3ndFY1KwyBiMS089MIeE/sQ8eGiUH6IQVlZ7raMYqxC+tMp/8Ntar8+P7YDQ7xcH2od0iLRz1zDoVjkpf6ofHoQp+bnuK4jdSf2irQSSt3P7rEhJ6XzSJjE/TP72SD45F+7HzrMewPezeJ7DfQyxkVvcMpWTneRoKtwan6O65oe4nsC/GVKT2FbDvFVPVb2c6pRz3mZ5Lj4x/azQfA5Q5wcMHRcSTMN2XSxSpuU0gbOEuccDc6DOBTm8jOtKwbaqrqLcojMIfu4hWtflUPuJzIv87M3UBSR2iHOnKFxN/gPYBmGYVwYHuKGYRgXhoe4YRjGheEhbhiGcWGsH+LvhmEYxr3gIW4YhnFheIgbhmFcGHca4q21mopgMwfk+byIaYjbfRr392L3Y7ylT/5oyDIa8/yksZATrivNkmEYCu43xBH2NsiSe9j7SQfl3DRUOEsprril/Cdo8+GIwhFFXGnLhvh7qGM05jwJ54OFMIwviWyIv/54+Dgjj8+vC4Y4n5XITD+iyAkfmnwuiJx18AF0fIgjFVzX0MTk+UmlKboa/eJN9s4VwjC+GOIQ//X88O3lbXv7/RevHn68Hhvi/KTFAyxuRCHKCTJN7EZvenbwCXi7QdnQp2rkiUITLcqjLkvcMtWlUBKHOOJgGF8b9NspL99a+xjoy7+dclvf26SWaBAQJzE6X+SDQ38ULVOeXWgyBEu2xGe6vQuHZmtahegEMRzSlTJJwyEDpNow/gawIf76/Niefp7xD5tx9OwPM7HhTqINWuQD6LaSTo3RSVEKeQdDFulK7/kiukHblTSmMxTRRtOZMCnr65FtGO9siI+/DT8+xOMJT2/IujLZ45AiQxwtxvlO5i+3IbMvXdGnZBSSDtB0vRQVBUbOpS4eUdS+Dxf9G8bXRj7EX58fJyb49BBXrqWT6JDsGp19ZLEEGpR7A6408hyddKleTokLUTKm6EoZjmrvwhnGX4VkiMMJrn08Wx5GHj1xNKSzgzgZmkfIZk8GDT4RkSeZfWhIlffIgHNAo1MZmjHEhC5CSddOVgzjyyMM8f9+vvADox/PlocBp4sc+2ijO9F9Is9kHMwN8aHpU45LvqjnsFznJEe/nEwwJwZDSTOMr4pP/rX7oSGuONkv6gf+vCGORHGfc0OcvGUuJ+zQtEXvpssvV6Vb4rzkbBh/Jz5niJP/reZv90Q/4hu6liEa83AEXUQUS+GD3BJ1+7jcpnz5TrOKwom6Gq37kkIYxheG/wCWYRjGheEhbhiGcWF4iBuGYVwYHuKGYRgXhj9j0zAM48LwEDcMw7gwPMQNwzAuDA9xwzCMC+NOQ7y1VlNZZDNnTPbe7lOHvxe732QZpbFK11Do0fwQ50dSjZzr5PcFmijEGfWaCI3aLNro2R7lqWxc1WPT/RONxe1Kjw3JIQNhyKaMy3G/IY7QyVBsJGG43RUyW3aoOib7LYTkKu1lEuJ6uqKQUZI/xBkhpjF6EJPM7dFK6kpJEbIklLiu1KaUpnNIQQyUXJUhdP9625T1ivZlj00QRsaKrtE0ciRD/OXpJnPmMzYVxukjUTzv2tItgRgx3YIirtKOhMfWRIuiXpGkUiwFox2fJjzdMlf3JfWKtYi0UxtdPrHZr+w98waOZohh2WPcSWSox1ISUq6kBqu0b6HWLSuuQltH9ck+45+xOUQuJmhCJ2oOkUNp01UFPUprXEYUtZdU4/Z0pWzW0i0XPtqLae0UDshSFJWanVcvJUVlvdKVdOOW9QD3XKpADFFozm0otJgNlOTOOYklPiLat6wESq7K5BOs/3g2lAKx/1A9UCG30BwxU/FRpJeyjf5TRSS/S7QjP7rYRtsuyuQhkIrULUcXqExUGmi/PVLtAnFXkcNEvdIVHgitRAkkgWXElEN5jwyQK9FnaX+Ec6RKqjPEdsPaUSBu05GM8kukQ/znxzdUBt+G6/+wGeuXqkrTR5x06RDzggw4k5R/2RnIraKdE+aZ0ZsV+SchhrKNfKIMID6pokimTD5yRbaU9YrO4zoiw5WKrUji6p3Au4g8FWualmyIWNzOXRE+Qy+VzJAmKT106uJ6b8aG8tSn3edhtIOxJ12et4kzMGRQ9gfvPLQ4oZ0w2fdK9LP3gHQNJYSoQC/F6nQ8y1hpXJTAgxLiTVmvlFianH0FtwypTTRWEsLzU9qIPSamJXUyynnvDWVD7DGlk0vtejhFFHrUW9Kh/PNp8N8254a4cr3Zx1QSkaV+YlMmWjla6a79ja497kJReJNx+w0kGW1pAdHVhtFtJB1PCO9tSj6pBGQTzcRrqkvxvGW55alIJac+xawSPiSTeqwy9BBnzrNLEdEV0546F0l2j9I6Es78UW9ZvBPff0dF+4zNPEzWZygdqEhIatnTnQ1KFlpXOozEWqVdZJIqQjzL/CC3KRMemvuP+dzbiFF4yRCZk+rFa9QFQjZEApdWdgUxKIvOeSq9tGU5FLWnZmlFUmJDCUxfcp4oHKFEzPjx+TCD3xBv/ffExc/YzMPIM0JMELIRG0jnphcPuVqonWwZ4smJcZLdfQsYCqFMKOUkp9ko+Qxx1uuFxhMqGbLncYd6b+hwlUXnrsQzmNYiGuiH4nZfBhL5kKAKJe6BnN9RfPKv3esHg0sdbaDyESLD9w5VYmgo8Clws0mnUhoL+VE2kr2jvajPiA18GdPjijXVqZJ6ldd4M5TqdOTF6pe11mdTF4IYi2dQ0Vhu3BPrtnCfpdsJ7aQ/S5vpttw+a4inuUgPBm/WmFb0NM1R2Y7IYeSshFulPV2JrNItXaLSLZxkKZxo78AJpDJTD5xMmp+z69XdI5t0V+onMuxUI+aRQKprIoepKESV5LDMLeGMco54okc8A7p2JBxxS2ONwn8AyzAM48LwEDcMw7gwPMQNwzAuDA9xwzCMC6O9vW2t/eOrr7766usVr/8CaDNXPXUz1k8AAAAASUVORK5CYII=" alt="" />

作为一个Windows软件开发人员,你经常需要创建、打开和操作各种内核对象。系统要创建和操作若干类型的内核对象,比如存取符号对象、事件对象、文件对象、文件映射对象、I/O完成端口对象、作业对象、信箱对象、互斥对象、管道对象、进程对象、信标对象、线程对象和等待计时器对象等。这些对象都是通过调用函数来创建的。内核对象在应用程序中只能通过Windows的一组函数Create*/Open*/CloseHandle以及相应的内核对象句柄(*Handle)来访问,内核对象句柄(32位Windows进程中句柄为32位,64位进程中,句柄也变成64位)是一个不透明值,其具体意义也可能与Windows不同版本的具体实现相关。例如,CreateFileMapping函数可使系统能够创建一个文件映射对象。每个内核对象只是内核分配的一个内存块,并且只能由该内核访问。该内存块是一种数据结构,它的成员负责维护该对象的各种信息。有些数据成员(如安全性描述符、使用计数等)在所有对象类型中是相同的,但大多数数据成员属于特定的对象类型。例如,进程对象有一个进程ID、一个基本优先级和一个退出代码,而文件对象则拥有一个字节位移、一个共享模式和一个打开模式。

使用计数

内核对象的所有者是内核,而非进程,而且进程操作内核对象的唯一手段就是用句柄作为参数来调用相应的Windows API(Create*/Open*/CloseHandle)。Windows操作系统可由此来实现对内核对象的使用计数,就是说同一个内核对象,Windows操作系统知道有多少进程在引用它。只有当引用计数变为0的时候,内核对象才被销毁,因此,一个内核对象的生命周期有可能比创建它的进程生命周期要长。

进程的内核对象句柄

进程的内核对象句柄都包含了进程句柄表的索引值,而进程的句柄表是在进程初始化的时候系统为其分配的;实际上将句柄值除以4(或者右移2位,以忽略Windows内部使用的最后两位)就能得到实际的句柄表索引值。

aaarticlea/png;base64,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" alt="" />

每个句柄包含一个索引值,能够只想该表中的一条记录,而该句柄表中每一条记录都是一个数据结构,这个数据结构包含了:

aaarticlea/png;base64,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" alt="" />

参考:

MSDN:https://msdn.microsoft.com/en-us/library/aa363858%28VS.85%29.aspx

http://www.cnblogs.com/wind-net/archive/2012/11/09/2762667.html

内核对象:http://www.cnblogs.com/Code-life/archive/2012/06/10/2543872.html

http://www.cnblogs.com/dlbrant/archive/2013/05/27/3102824.html

Windows API 之 CreateFile的更多相关文章

  1. Windows API 之 CreateFile、CreateFileMapping 、MapViewOfFile

    CreateFile Creates or opens a file or I/O device. The most commonly used I/O devices are as follows: ...

  2. 用Windows API函数(CreateFile/ReadFile/WriteFile/CloseHandle)完成文件拷贝程序(初级版)

    文件拷贝程序 程序类型:Console 参数:源文件名   目的文件名 要求:1.只能使用Windows API函数(CreateFile/ReadFile/WriteFile/CloseHandle ...

  3. Delphi Windows API判断文件共享锁定状态(OpenFile和CreateFile两种方法)

    一.概述 锁是操作系统为实现数据共享而提供的一种安全机制,它使得不同的应用程序,不同的计算机之间可以安全有效地共享和交换数据.要保证安全有效地操作共享数据,必须在相应的操作前判断锁的类型,然后才能确定 ...

  4. Windows API 函数列表 附帮助手册

    所有Windows API函数列表,为了方便查询,也为了大家查找,所以整理一下贡献出来了. 帮助手册:700多个Windows API的函数手册 免费下载 API之网络函数 API之消息函数 API之 ...

  5. 初识【Windows API】--文本去重

    最近学习操作系统中,老师布置了一个作业,运用系统调用函数删除文件夹下两个重复文本类文件,Linux玩不动,于是就只能在Windows下进行了. 看了一下介绍Windows API的博客: 点击打开 基 ...

  6. 关于Windows API、CRT和STL二三事

    1.本文编写目的    本文是为了帮助一些人弄清一些关于Windows API, C运行时程序库(CRT), 和标准C++库(STL)的基本概念.有很多人甚至是有经验的程序员在这些概念上是含糊不清的甚 ...

  7. Delphi Windows API判断文件共享锁定状态(使用OpenFile来判断)

    一.概述 锁是操作系统为实现数据共享而提供的一种安全机制,它使得不同的应用程序,不同的计算机之间可以安全有效地共享和交换数据.要保证安全有效地操作共享数据,必须在相应的操作前判断锁的类型,然后才能确定 ...

  8. Windows API Finishing

    input { font-size: 14px; height: 26px } td { border-style: none; border-color: inherit; border-width ...

  9. Windows API教程文件系统

    本篇文章主要介绍了"Windows API教程文件系统",主要涉及到Windows API教程文件系统方面的内容,对于Windows API教程文件系统感兴趣的同学可以参考一下. ...

随机推荐

  1. redis数据类型:Strings

    String是最简单的数据类型,一个key对应一个value,string类型是二进制安全的,redis的String可以包含任何数据, 比如jpg图片或者系列化的对象. Set方法: 设置key对应 ...

  2. 本元鼠标自动点击器 v1.31 官方绿色版

    软件名称: 本元鼠标自动点击器软件语言: 简体中文授权方式: 免费软件运行环境: Win 32位/64位软件大小: 516KB图片预览: 软件简介:本元鼠标自动点击器是一款免费绿色版的鼠标自动点击器, ...

  3. MVC 包命名规范

    action+form = model     actionservlet+struts-config.xml= controller     jsp+自定义标签=veiw 备注:这里说明的非常好 m ...

  4. POJ 2062 HDU 1528 ZOJ 2223 Card Game Cheater

    水题,感觉和田忌赛马差不多 #include<cstdio> #include<cstring> #include<cmath> #include<algor ...

  5. linux时间同步,ntpd、ntpdate

    linux时间同步,ntpd.ntpdate 在Windwos中,系统时间的设置很简单,界面操作,通俗易懂.而且设置后,重启,关机都没关系.系统时间会自动保存在Bios的时钟里面,启动计算机的时候,系 ...

  6. js 第一天

    <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...

  7. CSS3秘笈:第八章

    给网页添加图片 1. 常用来处理图片的CSS属性: (1)     border(边框):给图片添加边框. (2)     padding(填充):边框和图片之间填充空间. (3)     float ...

  8. linux中的 tar命令的 -C 参数,以及其它一些参数(转)

    linux中的 tar命令的 -C 参数,以及其它一些参数 复制源:http://www.cnblogs.com/li-hao/archive/2011/10/03/2198480.htmltar命令 ...

  9. url操作一网打尽(一)

    1:url实际应用简介 近期研究发现通过url传递参数很普遍的(淘宝也是这样做的), 通过修改url来传递参数,比如通过关键字搜索某件商品的时候,链接便追加了相应参数.在请求接口的时候直接对url进行 ...

  10. 通过C++修改系统时间代码

    #include <windows.h>#include <stdio.h>#include <iostream>using namespace std;int m ...