コード例 #1
0
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;
}
コード例 #2
0
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;
}