📄 line.cpp
字号:
//********************************************************************
// 日期: 2004/08/16 - 16:8:2004 0:18
// 名前: tiamo
// 描述: line
//*********************************************************************
#include "Stdafx.h"
// reference line
VOID ReferenceLine(PLINE_INFO pLine,BOOLEAN bAcquireLock)
{
if(bAcquireLock)
NdisAcquireSpinLock(&pLine->m_lockSelf);
pLine->m_lRefCount ++;
if(bAcquireLock)
NdisReleaseSpinLock(&pLine->m_lockSelf);
}
// dereference line
VOID DereferenceLine(PLINE_INFO pLine)
{
NdisAcquireSpinLock(&pLine->m_lockSelf);
LONG lCount = --pLine->m_lRefCount;
if(!lCount)
{
pLine->m_ulFlags &= ~(LINE_INITIALIZED | LINE_CLOSING);
pLine->m_ulFlags |= LINE_FREEING;
}
NdisReleaseSpinLock(&pLine->m_lockSelf);
if(!lCount)
{
TspiCloseLineComplete(pLine);
}
}
// tspi close line complete
VOID TspiCloseLineComplete(PLINE_INFO pLine)
{
NdisAcquireSpinLock(&g_pAdapter->m_lockSelf);
g_pAdapter->m_ulTotalLines --;
NdisReleaseSpinLock(&g_pAdapter->m_lockSelf);
if(pLine->m_ulFlags & LINE_CLOSE_RETURN_PENDING)
NdisMSetInformationComplete(g_pAdapter->m_hMiniportAdapter,NDIS_STATUS_SUCCESS);
NdisFreeMemory(pLine,sizeof(LINE_INFO),0);
DereferenceTspiProvider(g_pAdapter);
}
// get hd line
HDRV_LINE GetHdLineFromDeviceId(PADAPTER pAdapter,ULONG ulDeviceId)
{
if(PROVIDER_IN_WRONG_STATE(pAdapter))
return static_cast<HDRV_LINE>(-1);
HDRV_LINE hRet = ulDeviceId - pAdapter->m_ulDeviceIdBase;
if(hRet < pAdapter->m_ulNumLineDevs)
return hRet;
return static_cast<HDRV_LINE>(-1);
}
// get line info
PLINE_INFO GetLinePtrFromHdLineCheckWorking(PADAPTER pAdapter,HDRV_LINE hdLine)
{
if(PROVIDER_IN_WRONG_STATE(pAdapter))
return NULL;
if(hdLine < pAdapter->m_ulNumLineDevs)
return pAdapter->m_pLinePtrArray[hdLine];
return NULL;
}
PLINE_INFO GetLinePtrFromHdLineCheckInitOnly(PADAPTER pAdapter,HDRV_LINE hdLine)
{
if((pAdapter->m_ulProviderFlags & PROVIDER_INITIALIZED) && hdLine < pAdapter->m_ulNumLineDevs)
return pAdapter->m_pLinePtrArray[hdLine];
return NULL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -