深度剖析WinPcap之(九)――数据包的发送过程(9)

1.7.3.2    高分辨率计时器(High-Resolution Timer)

计数器是一个通用的术语,在编程用来指一个递增的变量。一些系统包含一个高分辨率的执行计数器,提供高分辨率的逝去时间。如果系统上存在一个高分辨率的执行计数器,就可以使用QueryPerformanceFrequency函数来表示频率,采用每秒多少个的形式表示。该计数器的值依赖于处理器。例如,在一些处理器上,计数可能就是处理器时钟的周期。
函数QueryPerformanceCounter获得高分辨率执行计数器的当前值。通过在代码的起始与结束处调用该函数,一个应用程序在本质上使用该计数器作为一个高分辨率的计时器。比如,假设QueryPerformanceFrequency函数指明高分辨率执行计数器的频率是50,000个每秒。如果在需计时的应用程序代码块之前与之后直接调用QueryPerformanceCounter函数,计数值可能分别为15003500。这些值说明这段代码逝去了0.04(2000个计数,2000除以50,000)
 
QueryPerformanceCounter 函数
函数QueryPerformanceCounter获得 高分辨率执行计数器的当前值 ,函数原型如下:
BOOL QueryPerformanceCounter(   
     
LARGE_INTEGER *lpPerformanceCount
     
);
     
参数lpPerformanceCount指向一个接受执行计数器当前值的变量,用个数表示。
如果函数成功返回非0值。如果函数失败,返回0值。
 
QueryPerformanceFrequency 函数
如果存在一个高分辨率执行计数器,函数返回计数器的频率。当系统正在运行时该频率不会改变。 函数原型如下:
BOOL QueryPerformanceFrequency(    
     
    LARGE_INTEGER *lpFrequency
     
);
     
参数lpFrequency 指向一个接受当前执行计数器频率的变量,用个数每秒的形式表示。如果安转的硬件不支持一个分辨率执行计数器,该参数可能为0
如果安转的硬件支持一个 分辨率执行计数器,返回值为一个非0值。 如果函数失败,返回0值。如果安转的硬件不支持一个 分辨率执行计数器,该函数失败。
 

你可能感兴趣的:(职场,休闲,winpcap)