You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
During async I/O completion synthetically try to wait for the event to complete inside of the verifier hooks in the immediate context. When successful, return to the caller that the async I/O completed "immediately". It is common programming error to not handle async I/O correctly. Attempting to handle async I/O in an "immediate" context instead in the thread or processing logic that is intended to handle the completion of the I/O is generally errant. This approach attempts to trick the logic into an potentially dangerous programming pattern.
res=Orig_ReadFile(...);
if (!res&&/* has event to wait on */&& (NtCurrentTeb()->LastErrorValue==ERROR_IO_PENDING))
{
NtWaitForSingleObject(...);
// convert to "immediate" (NtCurrentTeb()->LastErrorValue = ERROR_SUCCESS, return TRUE)
}
The text was updated successfully, but these errors were encountered:
During async I/O completion synthetically try to wait for the event to complete inside of the verifier hooks in the immediate context. When successful, return to the caller that the async I/O completed "immediately". It is common programming error to not handle async I/O correctly. Attempting to handle async I/O in an "immediate" context instead in the thread or processing logic that is intended to handle the completion of the I/O is generally errant. This approach attempts to trick the logic into an potentially dangerous programming pattern.
The text was updated successfully, but these errors were encountered: