[原]CreateFile中的dwShareMode
2024-10-08 19:10:08
原 总结 API
一直对CreateFile的参数dwDesiredAccess和dwShareMode有什么不同不是很清楚,今天重读 windows核心编程的时候终于豁然开朗了。 真是书读百遍,其义自见。
简要总结如下:
- dwDesiredAccess表示本次CreateFile想要获取的权限: 只读(GENERIC_READ),只写(GENERIC_WRITE),可读写(GENERIC_READ | GENERIC_WRITE)。
- dwShareMode表示后续CreateFile可以取得什么权限。
对dwShareMode取的各种值及含义抄录如下(摘自 Windows核心编程第5版 第10章 p293):
值 | 含义 |
---|---|
0 | 要求独占对设备的访问。 如果设备己经打开,CreateFile调用会失败。如果我们成功地打开了设备,那么后续的CreateFUe调用会失败 |
FILE_SHARE_READ | 如果有其他内核对象要使用该设备,我们要求它们不得修改设备的数据。 如果设备已经以写入方式或独占方式打开,那么我们的CreateFile会失败。 如果我们成功地打开了设备,那么后续的使用了 GENERIC_WRITE访问标志的CreateFile调用会失败 |
FILE_SHARE_WRITE | 如果有其他内核对象要使用该设备,我们要求它们不得读取设备的数据。 如果设备已经以读取方式或独占方式打开,那么我们的CreateFUe调用会失败。 如果我们成功地打开了设备,那么后续的使用了GENERIC_READ访问标志的CreateFile调用会失畋 |
FILE_SHARE_READ | FILE_SHARE_WRITE |
FILE_SHARE DELETE | 当对文件进行操作的时候,我们不关心文件是否呗逻辑删除或是被移动。在Windows内部,系统会先将文件标记为待删除,然后当该文件所有已打开的句柄都被关闭的时候,再将其真正的删除 |
最新文章
- python bytes to string
- javascript 方法实例
- ini_set()函数的使用 以及 post_max_size,upload_max_filesize的修改方法
- codevs2171 棋盘覆盖
- 启动本地Oracle
- Android 购物车功能的实现
- Phalcon 的 bootstrap.php 自动加载完成;非常人性化的设计
- Entify Framewrok - Join的使用方法
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xa0 in position 0: ordinal not in range(128)
- proxy_pass根据path路径转发时的";/";问题记录
- 大米网赚项目介绍,官方唯一客服QQ:486594009
- 设置Ubuntu右侧显示扩展屏幕。。。
- yii2 Menu组件的使用
- 非常棒的轨迹插件Better Trails v1.4.6
- Python之socket编程进阶版
- Mac日常使用问题
- Spark Sort-Based Shuffle具体实现内幕和源码详解
- 05_Flume_timestamp interceptor实践
- C# 使用GZip对字符串压缩和解压
- IS服务器下做301永久重定向设置方法
热门文章
- Mybatis报错——Mapped Statements collection already contains value for
- HDU—4699 Editor 双向链表+子集和
- python----linux下简单的排序
- Java多线程通讯---------wait,notify区别
- kill -HUP 什么意思?
- composer命令卡慢,使用国内源
- 最短路问题-- Dijkstra Choose the best route
- Emoji表情符号兼容方案
- 萤火虫系统(firefly) RK3399 python3 安装 spicy
- runlevel 运行级别