zoukankan      html  css  js  c++  java
  • [原]CreateFile中的dwShareMode

    一直对CreateFile的参数dwDesiredAccessdwShareMode有什么不同不是很清楚,今天重读 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内部,系统会先将文件标记为待删除,然后当该文件所有已打开的句柄都被关闭的时候,再将其真正的删除
  • 相关阅读:
    hdu 2842 Chinese Rings
    Codeforces Round #118 (Div. 1) A 矩阵快速幂
    hdu2604 Queuing
    支付宝 生活号 获取 userId 和 生活号支付
    maven 项目使用本地jar
    nexus 私有 maven 仓库的搭建
    linux jdk 安装
    gitlab 可以上传代码,但是 不能 上传 tag 问题
    maven 内置变量
    mysql 不允许分组的问题 this is incompatible with sql_mode=only_full_group_by
  • 原文地址:https://www.cnblogs.com/bianchengnan/p/6773371.html
Copyright © 2011-2022 走看看