以下摘自DOOM的博文《内核同步对象

    http://blog.csdn.net/lqk1985/article/details/2541867  

  “最后一个参数&timeout是一个64位超时值的地址,单位为100纳秒。正数的超时表示一个从1601年1月1日起的绝对时间。调用KeQuerySystemTime函数可以获得当前系统时间。负数代表相对于当前时间的时间间隔。如果你指定了绝对超时,那么系统时钟的改变也将影响到你的超时时间。如果系统时间越过你指定的绝对时间,那么永远都不会超时。相反,如果你指定相对超时,那么你经过的超时时间将不受系统时钟改变的影响。

为什么是1601年1月1日

  许多年以前,当我第一次学习Win32 API时,我曾迷惑为什么选择1601年1月1日作为Windows NT的时间起点。在我写了一组时间转换函数后我明白了这个问题的原因。每个人都知道可被4整除的年份是闰年。许多人也知道世纪年(如1900年)应例外, 虽然这些年份都能被4整除但它们不是闰年。少数人还知道能被400整除的年份(如1600和2000)是例外中的例外,它们也是闰年。而1601年1月1 日正好是一个400年周期的开始。如果把它作为时间信息的起点,那么把NT时间信息转换为常规日期表达(或相反)就不用做任何跳跃操作。”

#define DELAY_ONE_MICROSECOND (-10) 时间是负数的原因的更多相关文章

  1. 随记1(#define a 10和const int a=10)

    正是求职笔试旺季,前几天听说有人遇到此题:#define a 10 和const int a=10的区别,废话不多说,下面来解释一下: #define 指令是定义符号常量 const   定义的是常变 ...

  2. 查看Oracle中存储过程长时间被卡住的原因

    1:查V$DB_OBJECT_CACHE SELECT * FROM V$DB_OBJECT_CACHE WHERE name='CUX_OE_ORDER_RPT_PKG' AND LOCKS!='0 ...

  3. Windows+Linux双系统所导致的时间不一致问题的原因及解决方案

    参考自:https://www.cnblogs.com/x_wukong/p/4401499.html 前几天在自己的windows10另外还装了一个Ubuntu,使用后发现windows时间一直不对 ...

  4. Microsoft Dynamics CRM 4.0导入组织(Import Organization)时间过长的原因总结

    952934    How to move the Microsoft Dynamics CRM 4.0 deployment http://support.microsoft.com/default ...

  5. APUE学习笔记——6.10 时间与时间例程 time_t

           Unix提供的最基本的时间服务室日历时间(纪元时间),也就是计算1970年1月1日0时0分0秒到当前的秒数.该秒数用time_t表示. typedef long time_t; /* 时 ...

  6. VMware 12安装虚拟机Mac OS X 10.10使用小技巧(虚拟机Mac OS X 10.10时间设置,虚拟机Mac OS X 10.10通过代理上网,Mac OS X 10.10虚拟机优化,VMware虚拟机相互复制)

    1:修改Mac OS 系统时间 2:Mac OS系统 通过代理上网 VMware 12安装Mac OS X 10.10虚拟机优化心得 虚拟显卡硬伤,所以必须要优化下才能用,优化的原则就是能精简的精简, ...

  7. HBase写入操作卡住长时间不返回的原因分析

    本文出处:http://blog.csdn.net/chaijunkun/article/details/44238163,转载请注明. 由于本人不定期会整理相关博文,会对相应内容作出完好.因此强烈建 ...

  8. SELECT CAST(GETDATE() AS VARCHAR(10)) 显示不同格式的原因

    开发人员测试时,发现生产服务器与测试服务器执行SELECT CAST(GETDATE() AS VARCHAR(10))语句显示的格式不一样.如下所示 Server A Server B 其实出现这个 ...

  9. pycharm索引index时间很长的原因

    pycharm进行索引index的目的时代码自动补全,当引入新的插件时,就会增加索引时间,插件越多,索引时间越长 没有好的解决办法,除非增加硬件:或者不使用代码自动补全功能

随机推荐

  1. repeater留言板[转]

    做了一个网站,其中的在线留言板块是用Repeater来显示留言的,这样可以用少的代码还实现多的功能,但是不知道怎么分页,要是留言过多就会使页面变的很长,能过查看众多网友的经验,知道用PagedData ...

  2. ajax 无刷新上传

    最近要做微信的图文上传,因为一个图文了表中可以有多个图文,所有按钮需要随时添加,所以做了一种无刷新上传的方法. 首先我们要在html页面中写上这样的几段代码 javascript: $(functio ...

  3. JavaScript对象的chapterII

    一.BOM对象 1.window对象——表示整个浏览器窗口 常用方法: a)alert()——系统消息框 alert('Hello World'); b)确认对话框——confirm() confir ...

  4. 创建EF数据模型

    最后的应用程序,看上去就像下边这样: 创建数据模型,你将从以下三个类开始: 在Models文件夹,新建以下类: using System; using System.Collections.Gener ...

  5. MySQL运算符和内置函数

    1.字符函数 CONCAT('a','-','b','-','c')效果等同于CONCAT_WS('-','a','b','c') FORMAT()的返回结果是字符型,会对操作数四舍五入,如:SELE ...

  6. Zend Studio 11.0 汉化

    1.Help->Install New Software2.在Work with框中复制此地址:http://download.eclipse.org/technology/babel/upda ...

  7. iPhone系列设备媒体查询:

    这就引出一个问题,我们在对iPhone设备适配时候,又多出几种情况.iPhone系列设备媒体查询: @media only screen and (min-device-width: 320px){ ...

  8. 汇编语言写出的helloworld运行过程

    一:首先说一点,这篇文章建立在懂一点汇编的基础上,有几个简单的命令,说以下: 1:-r命令 -r 查看寄存器 -r 寄存器 (如 -r AX) 修改寄存器的值: 2:-d命令 -d 地址:xxxx:x ...

  9. nodejs&npm等概念梳理

    nodejs node node版本 npm nvmw\gnvm等多版本管理 CommonJS.AMD.requirejs grunt.gulp package.json .npmrc npm\nod ...

  10. SAP销售模块塑工常见问题和解决方案(自己收藏)

    当创建订单时出现提示不存在该产品层次,如图: 解决方案:将该物料正确的产品层次提供给创建物料主数据的相关人员,将其改正. 对于包装膜类物料,在创建完销售订单进行后续的动作时,如开票,发现没有带出相应的 ...