|
Asynchronous Procedure Calls
An asynchronous procedure call (APC) is a function that executes
asynchronously in the context of a particular thread. When an APC is queued to a thread, the
system issues a software interrupt. The next time the thread is scheduled, it
will run the APC function. APCs made by the system are called "kernel-mode
APCs." APCs made by an application are called "user-mode APCs." A thread must be in
an alertable state to run a user-mode APC.
Each thread has its own APC queue. An application queues an APC to a thread by
calling the QueueUserAPC function. The calling thread specifies the address of an APC function in the
call to QueueUserAPC. The queuing of an APC is a request for the thread to call the APC function.
When a user-mode APC is queued, the thread to which it is queued is not
directed to call the APC function unless it is in an alertable state. A thread enters
an alertable state when it calls the SleepEx, SignalObjectAndWait, MsgWaitForMultipleObjectsEx, WaitForMultipleObjectsEx, or WaitForSingleObjectEx function.
Note that the ReadFileEx and WriteFileEx functions are implemented using an APC as the completion notification
callback mechanism.
Related Links
Software for Delphi and C++ Builder developers
Software for Visual Studio .NET developers
Software for Visual Basic 6 developers
Delphi Tips&Tricks
MegaDetailed.NET
TMS Scripter Studio Pro components for Delphi/C++Builder
More Online Helps
Win32 Multimedia Programmer's Reference (mmedia.hlp)
OLE Programmer's Reference (ole.hlp)
Microsoft Windows Pen API Programmer's Reference (penapi.hlp)
Microsoft Windows Sockets 2 Reference (sock2.hlp)
Microsoft Windows Telephony API (TAPI) Programmer's Reference (tapi.hlp)
Unix Manual Pages
|