zoukankan      html  css  js  c++  java
  • SetHandleInformation设置内核对象标志

    当父进程创建子进程时,子进程将继承父进程的内核对象。这时如果要控制子进程使用父进程的内核对象。可以使用
    SetHandleInformation设置。
    BOOL SetHandleInformation(HANDLE hObject, DWORD dwMask, DWORD dwFlags);
    改变句柄的标志,目前可改变的标志有两种
    #define HANDLE_FLAG_INHERIT   0x00000001  // 继承标志
    #define HANDLE_FLAG_PROJECT_FROM_CLOSE   0x00000001 // 保护不允许关闭句柄标志
    例如
    // 设置句柄值可继承:
    SetHandleInformation(hObject, HANDLE_FLAG_INHERIT, HANDLE_FLAG_INHERIT);
    // 设置句柄不可继承:
    SetHandleInformation(hObject, HANDLE_FLAG_INHERIT, 0);
    // 设置句柄值不可关闭,受保护:
    SetHandleInformation(hObject, HANDLE_FLAG_PROJECT_FROM_CLOSE, HANDLE_FLAG_PROJECT_FROM_CLOSE);
    // 设置句柄值可关闭,不受保护:
    SetHandleInformation(hObject, HANDLE_FLAG_PROJECT_FROM_CLOSE, 0);
    
    
    
    1、关于设置句柄为不可继承的用法,在创建一个回路的socket时使用,如果可以子进程可以继承的话,会出现多个回路的socket,通讯会受影响
    
    2、关于设置句柄不可以关闭,受保护时,父进程创建子进程,子进程再创建孙进程时,子进程把句柄关闭,导致孙进程无法继续使用,这时候要保护
    

      

  • 相关阅读:
    ElasticSearch 高级DSL查询语句
    docker改国内官方镜像
    step1: python & scrapy安装
    step7: 输出到json文件
    step6: item与pipeline
    step5: 编写spider爬取
    step4: Xpath的使用
    step3: 创建jobbole爬虫
    step2: 爬取廖雪峰博客
    解决WAS更新web.xml文件不生效的问题(web_merged.xml是罪魁祸首)
  • 原文地址:https://www.cnblogs.com/bizhu/p/4101206.html
Copyright © 2011-2022 走看看