<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;"><DIV>this doesn't happen often, just FYI</DIV>
<DIV> </DIV><FONT color=#0000ff size=2><FONT color=#0000ff size=2>
<DIV>static</FONT></FONT><FONT size=2> PPDMASYNCCOMPLETIONTASK pdmR3AsyncCompletionGetTask(PPDMASYNCCOMPLETIONENDPOINT pEndpoint, </FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2>void</FONT></FONT><FONT size=2> *pvUser)</DIV>
<DIV>{</DIV>
<DIV> </DIV><FONT color=#0000ff size=2><FONT color=#0000ff size=2>
<DIV>else</DIV></FONT></FONT><FONT size=2>
<DIV>{</DIV>
<DIV></FONT><FONT color=#008000 size=2><FONT color=#008000 size=2>/* Grab a free task from the head. */</DIV></FONT></FONT><FONT size=2>
<DIV>AssertMsg(pEndpoint->cTasksCached > 0, (</FONT><FONT color=#800000 size=2><FONT color=#800000 size=2>"No tasks cached but list contain more than one element\n"</FONT></FONT><FONT size=2>));</DIV>
<DIV>pTask = pEndpoint->pTasksFreeHead;</DIV>
<DIV><FONT color=#ff0000>pEndpoint->pTasksFreeHead = pTask->pNext; <==== CRASH HERE</FONT></DIV>
<DIV>ASMAtomicDecU32(&pEndpoint->cTasksCached);</DIV>
<DIV>}</DIV>
<DIV> </DIV></FONT></FONT>
<DIV> </DIV>
<DIV>}</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>> VBoxVMM.dll!pdmR3AsyncCompletionGetTask(PDMASYNCCOMPLETIONENDPOINT * pEndpoint=0x020442d0, void * pvUser=0x00000000)  Line 824 + 0x5 bytes C++<BR>  VBoxVMM.dll!PDMR3AsyncCompletionEpRead(PDMASYNCCOMPLETIONENDPOINT * pEndpoint=0x020442d0, __int64 off=845623296, const PDMDATASEG * paSegments=0x06f7fd98, unsigned int cSegments=1, unsigned int cbRead=512, void * pvUser=0x00000000, PDMASYNCCOMPLETIONTASK * * ppTask=0x06f7fdac)  Line 1076 + 0xa bytes C++<BR>  VBoxDD.dll!drvvdAsyncIOReadSync(void * pvUser=0x059c0ea8, void * pStorage=0x030974a0, unsigned __int64 uOffset=845623296, unsigned int cbRead=512, void * pvBuf=0x03162b18, unsigned int * pcbRead=0x00000000)  Line 321 + 0x28 bytes C++<BR>  VBoxDDU.dll!vhdFileReadSync(VHDIMAGE * pImage=0x00000000, unsigned __int64 off=845623296, void * pvBuf=0x03162b18, unsigned int cbRead=512, unsigned int * pcbRead=0x00000000)  Line 350 + 0x25
 bytes C++<BR>  VBoxDDU.dll!vhdRead(void * pBackendData=0x03162840, unsigned __int64 uOffset=846021632, void * pvBuf=0x05930000, unsigned int cbRead=1651608, unsigned int * pcbActuallyRead=0x06f7fe1c)  Line 1159 + 0x2c bytes C++<BR>  VBoxDDU.dll!vdReadHelper(VBOXHDD * pDisk=0x06f7fe44, VDIMAGE * pImage=0x030a28b0, unsigned __int64 uOffset=68732457472, void * pvBuf=0x00000000, unsigned int cbRead=512)  Line 322 + 0x17 bytes C++<BR>  VBoxDDU.dll!VDRead(VBOXHDD * pDisk=0x030034f0, unsigned __int64 uOffset=68732457472, void * pvBuf=0x05930000, unsigned int cbRead=512)  Line 2653 + 0xc bytes C++<BR>  VBoxDD.dll!drvvdRead(PDMIMEDIA * pInterface=0x059c0eac, unsigned __int64 off=68732457472, void * pvBuf=0x05930000, unsigned int cbRead=512)  Line 608 + 0x1d bytes C++<BR>  VBoxDD.dll!drvblockRead(PDMIBLOCK * pInterface=0x020ea654, unsigned __int64 off=68732457472, void
 * pvBuf=0x05930000, unsigned int cbRead=512)  Line 140 + 0x18 bytes C++<BR>  VBoxDD.dll!ataReadSectors(ATADevState * s=0x00000000, unsigned __int64 u64Sector=134243081, void * pvBuf=0x05930000, unsigned int cSectors=1, bool * fRedo=0x06f7fee3)  Line 1475 C++<BR>  VBoxDD.dll!ataReadSectorsSS(ATADevState * s=0x04411d00)  Line 1549 + 0x18 bytes C++<BR>  VBoxDD.dll!ataAsyncIOLoop(RTTHREADINT * ThreadSelf=0x0204c138, void * pvUser=0x00000002)  Line 4872 + 0xd bytes C++<BR>  VBoxRT.dll!rtThreadMain(RTTHREADINT * pThread=0x0204c138, unsigned int NativeThread=252, const char * pszThreadName=0x0204c1a0)  Line 637 + 0xa bytes C++<BR>  VBoxRT.dll!rtThreadNativeMain(void * pvArgs=0x0204c138)  Line 106 + 0xb bytes C++<BR>  msvcr80.dll!_callthreadstartex()  Line 348 + 0x6 bytes C<BR>  msvcr80.dll!_threadstartex(void *
 ptd=0x031555b8)  Line 326 + 0x5 bytes C<BR>  <A href="mailto:kernel32.dll!@BaseThreadInitThunk@12">kernel32.dll!@BaseThreadInitThunk@12</A>()  + 0x12 bytes <BR>  <A href="mailto:ntdll.dll!___RtlUserThreadStart@8">ntdll.dll!___RtlUserThreadStart@8</A>()  + 0x27 bytes <BR>  <A href="mailto:ntdll.dll!__RtlUserThreadStart@8">ntdll.dll!__RtlUserThreadStart@8</A>()  + 0x1b bytes <BR></DIV></td></tr></table>