Table of Contents
Over the past few weeks, some of our users have reported that the Windows kernel driver is hibernating.
Updated
- Read 2 minutes
The KeDelayExecutionThread subroutine uses the current thread for a specified interval in a waiting state, which can be notified or not.
Syntax
NTSTATUS KeDelayExecutionThread ( standby KPROCESSOR_MODE, logical table of warnings, PLARGE_INTEGER interval);
Parameters
[inch]Specifies the CPU mode in which the caller is found, which can be KernelMode or UserMode. Lower-level drivers must specify KernelMode.
[inch]Indicates TRUE whether the timeout can be activated or not. Subordinate conductors must indicate FALSE.
[inch]Specifies the absolute relative time or time in units of 100 nanoseconds at which the wait type should occur. A harmful value indicates a relative time. Absolute expiration prolongs system time changes; changes to the program time do not affect significant expiration times.
Return Value
KeDelayExecutionThread usually returnGets the following values describing how the delay ended:
Return code | Description |
---|---|
|
The timeout has expired because the specified interval has expired. |
|
Timed out because the thread was notified. |
|
The user-mode APC may have been delivered before the specified interval expired. |
A
Note that the NT_SUCCESS macro generally recognizes all human status values as “success values”.
The sequence must be timed, and the current thread can be put into idle state. After a certain interval, the winning chain will be paused and ready to start.
Alert table defines when a thread can be alerted and its wait state is terminated. For more information see Also expect APC .
If WaitMode is a UserMode parameter, some kernel stack can be swapped while waiting. Therefore, the caller never should try to pass parameters on the heap when calling KeDelayExecutionThread with a UserMode argument.
It is especially important to check the return value of KeDelayExecutionThread if the WaitMode UserMode or Alertable is TRUE, because KeDelayExecutionThread may return prematurely with a STATUS_USER_APC or STATUS_ALERTED status.
All long-term waits that can be canceled by a participant must be user-mode waits, and Alertable is set to FALSE.
If possible, Alertable should be set to FALSE and WaitMode should be set to KernelMode to simplify the drivers on the market.
The expiration time of the new delay is expressed either in absolute free time at which the delay should expire, or in time relative to the current system time. Although the Interval value is usually positive, the expiration time is often an absolute time. If this value is definitely negative, the timeout is equal to the same time.
Timeouts are measured in terms of the system clock, and the knowledge that the operating system can detectWhen the incredible timer expires, it is limited to the granularity of the system clock. For more information, see Timer precision .
Requirements
Client supported at least | Available in Windows 2000. |
Target Platform | Universal |
Title | wdm.h (including Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
DDI Compliance Rules | IrqlKeApcLte1, PowerIrpDDis, HwStorPortProhibitedDDIs |
See Also
Hello,
I started learning fast programming
Updated
Are you tired of your computer running slow? Annoyed by frustrating error messages? ASR Pro is the solution for you! Our recommended tool will quickly diagnose and repair Windows issues while dramatically increasing system performance. So don't wait any longer, download ASR Pro today!
For example, I want my driver to take advantage of every 2000ms
The question is:
how to do it in the driver c
that must be why
This content, along with all associated prefixes and source files, is licensed under the Code Project Open License (CPOL).
Okay, I have a good hardware device – I’m writing to help you create a registry to reset the device, so I’ll have to wait for me to delete a certain value before I can proceed with the next operation.
What’s the safest way to do this? It is possible that there was a hardware problem and the device did not reboot, so it is not recommended to just run a loop. Inserting the counter into the loop is lame, as the counter may not be an accurate measurement for the evening depending on the processor speed (it may take 10ms to reset). And I’m pretty sure calling sleep () in the kernel driver is bad ™.
So is there a safe way to waste time with a kernel-mode driver? If there is a clock available from the kernel process, I can use it, but my Google Fu is weak today and nothing suitable came up.
Speed up your computer today with this simple download.Советы по восстановлению драйвера ядра Windows из гибернации
Consejos Para Recuperar El Controlador Del Kernel De Windows De La Hibernación
Conseils Pour Récupérer Le Pilote Du Noyau Windows à Partir De L’hibernation
Wskazówki Dotyczące Odzyskiwania Sterownika Jądra Systemu Windows Z Hibernacji
Tips För Att återställa Windows Kernel-drivrutinen Från Viloläge
Tipps Zum Wiederherstellen Des Windows-Kerneltreibers Aus Dem Ruhezustand
Suggerimenti Per Il Ripristino Del Driver Del Kernel Di Windows Dall’ibernazione
최대 절전 모드에서 Windows 커널 드라이버를 복구하기 위한 팁
Dicas Para Recuperar O Driver Do Kernel Do Windows Da Hibernação
Tips Voor Het Herstellen Van Het Windows-kernelstuurprogramma Uit De Sluimerstand