exSetTimerResolution 函式 (wdm.h)
ExSetTimerResolution 例程會修改系統時鐘中斷的頻率。 請特別小心使用此例程, (請參閱下列一節) 。
語法
ULONG ExSetTimerResolution(
[in] ULONG DesiredTime,
[in] BOOLEAN SetResolution
);
參數
[in] DesiredTime
以 100 奈秒為單位,指定每個定時器中斷之間應該經過的時間量。 最小值大約是 10,000 (1 毫秒) 但可能會因平臺而稍有不同。 (如果 SetResolution 為 FALSE.) ,則會忽略此參數
[in] SetResolution
如果為 TRUE,則呼叫是將時鐘中斷頻率設定為 DesiredTime 所指定的值的要求。 如果為 FALSE,則呼叫是將時鐘中斷頻率還原至系統預設值的要求,這是平臺特定的。
傳回值
ExSetTimerResolution 會以 100 奈秒為單位傳回新的定時器解析度。
備註
若要設定定時器解析度,驅動程式會呼叫此例程,將 TRUE 當做 SetResolution 的參數傳遞。 適用的規則如下:
只有在指定的 DesiredTime 值小於目前的設定時,例程才會變更時鐘中斷頻率。
如果驅動程式要求的 DesiredTime 值大於目前設定的值,例程只會傳回目前的設定。
如果驅動程式要求的 DesiredTime 值小於系統時鐘可以支援,則例程會使用系統可支援的最小解析度,並傳回該值。
如果您使用這個例程來變更時鐘中斷頻率,則驅動程式必須還原預設插斷頻率,通常是在卸載之前進行下列呼叫:
ExSetTimerResolution (0, FALSE);
如果多個驅動程式嘗試修改時鐘中斷頻率,系統不會還原默認頻率,直到所有這些驅動程式都以 SetResolution 值為 FALSE 的 SetResolution 值呼叫此例程為止。
變更時鐘中斷頻率的結果是全系統,而且可能會對系統效能造成嚴重負面影響。 另請注意,較高的時鐘中斷頻率可以縮短系統的電池使用時間。
在處理 IRP_MJ_POWER 要求期間,電源管理員會鎖定 ExSetTimerResolution 必須取得才能完成的資源。 因此,如果驅動程式直接或間接在處理電源要求時呼叫 ExSetTimerResolution ,然後等候呼叫 ExSetTimerResolution ,在驅動程式完成電源要求之前傳回,就會發生死結。 如需在處理電源 IRP 時安全地呼叫 ExSetTimerResolution 的詳細資訊,請參閱 在處理 Power IRP 時呼叫 ExSetTimerResolution。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | IRQL <= APC_LEVEL |
DDI 合規性規則 | HwStorPortProhibitedDDIs (storport) 、 IrqlExApcLte2 (wdm) |