static UINT FillDataOnBugCheck() { UINT i, n = 0; NdisGetCurrentSystemTime(&BugCheckData.StaticData.Header.qCrashTime); for (i = 0; i < MAX_CONTEXTS; ++i) { tBugCheckPerNicDataContent *pSave = &BugCheckData.StaticData.PerNicData[i]; PARANDIS_ADAPTER *p = (PARANDIS_ADAPTER *)pSave->Context; if (!p) continue; pSave->nofPacketsToComplete = p->NetTxPacketsToReturn; pSave->nofReadyTxBuffers = p->nofFreeHardwareBuffers; pSave->LastInterruptTimeStamp.QuadPart = PARADNIS_GET_LAST_INTERRUPT_TIMESTAMP(p); pSave->LastTxCompletionTimeStamp = p->LastTxCompletionTimeStamp; ParaNdis_CallOnBugCheck(p); ++n; } return n; }
static UINT FillDataOnBugCheck() { UINT i, n = 0; NdisGetCurrentSystemTime(&BugCheckData.StaticData.Header.qCrashTime); for (i = 0; i < MAX_CONTEXTS; ++i) { tBugCheckPerNicDataContent *pSave = &BugCheckData.StaticData.PerNicData[i]; PARANDIS_ADAPTER *p = (PARANDIS_ADAPTER *)(UINT_PTR)pSave->Context; if (!p) continue; pSave->nofReadyTxBuffers = 0; for (UINT j = 0; j < p->nPathBundles; j++) { pSave->nofReadyTxBuffers += p->pPathBundles[j].txPath.GetFreeHWBuffers(); } pSave->LastInterruptTimeStamp.QuadPart = PARADNIS_GET_LAST_INTERRUPT_TIMESTAMP(p); pSave->LastTxCompletionTimeStamp = p->LastTxCompletionTimeStamp; ParaNdis_CallOnBugCheck(p); ++n; } return n; }