本文整理汇总了C++中NdisEqualMemory函数的典型用法代码示例。如果您正苦于以下问题:C++ NdisEqualMemory函数的具体用法?C++ NdisEqualMemory怎么用?C++ NdisEqualMemory使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NdisEqualMemory函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MlmeDelBAReqSanity
/*
==========================================================================
Description:
MLME message sanity check
Return:
TRUE if all parameters are OK, FALSE otherwise
IRQL = DISPATCH_LEVEL
==========================================================================
*/
BOOLEAN MlmeDelBAReqSanity(
IN PRTMP_ADAPTER pAd,
IN VOID *Msg,
IN ULONG MsgLen)
{
MLME_DELBA_REQ_STRUCT *pInfo;
pInfo = (MLME_DELBA_REQ_STRUCT *)Msg;
if ((MsgLen != sizeof(MLME_DELBA_REQ_STRUCT)))
{
DBGPRINT(RT_DEBUG_ERROR, ("MlmeDelBAReqSanity fail - message lenght not correct.\n"));
return FALSE;
}
if ((pInfo->Wcid >= MAX_LEN_OF_MAC_TABLE))
{
DBGPRINT(RT_DEBUG_ERROR, ("MlmeDelBAReqSanity fail - The peer Mac is not associated yet.\n"));
return FALSE;
}
if ((pInfo->TID & 0xf0))
{
DBGPRINT(RT_DEBUG_ERROR, ("MlmeDelBAReqSanity fail - The peer TID is incorrect.\n"));
return FALSE;
}
if (NdisEqualMemory(pAd->MacTab.Content[pInfo->Wcid].Addr, pInfo->Addr, MAC_ADDR_LEN) == 0)
{
DBGPRINT(RT_DEBUG_ERROR, ("MlmeDelBAReqSanity fail - the peer addr dosen't exist.\n"));
return FALSE;
}
return TRUE;
}
示例2: AutoChBssEntrySet
static inline VOID AutoChBssEntrySet(
OUT BSSENTRY *pBss,
IN PUCHAR pBssid,
IN CHAR Ssid[],
IN UCHAR SsidLen,
IN UCHAR Channel,
IN UCHAR ExtChOffset,
IN CHAR Rssi)
{
COPY_MAC_ADDR(pBss->Bssid, pBssid);
if (SsidLen > 0)
{
/*
For hidden SSID AP, it might send beacon with SSID len equal to 0,
Or send beacon /probe response with SSID len matching real SSID length,
but SSID is all zero. such as "00-00-00-00" with length 4.
We have to prevent this case overwrite correct table
*/
if (NdisEqualMemory(Ssid, ZeroSsid, SsidLen) == 0)
{
NdisMoveMemory(pBss->Ssid, Ssid, SsidLen);
pBss->SsidLen = SsidLen;
}
}
pBss->Channel = Channel;
pBss->ExtChOffset = ExtChOffset;
pBss->Rssi = Rssi;
return;
}
示例3: RTMPReplayAttackDetection
BOOLEAN RTMPReplayAttackDetection(
IN PRTMP_ADAPTER pAd,
IN PUCHAR pAddr2,
IN CHAR Rssi0,
IN CHAR Rssi1,
IN CHAR Rssi2)
{
INT i;
for (i = 0; i < pAd->ApCfg.BssidNum; i++)
{
/* Conflict SSID detection */
if (NdisEqualMemory(pAddr2, pAd->ApCfg.MBSSID[i].Bssid, MAC_ADDR_LEN))
{
CHAR RcvdRssi;
RcvdRssi = RTMPMaxRssi(pAd, ConvertToRssi(pAd, Rssi0, RSSI_0), ConvertToRssi(pAd, Rssi1, RSSI_1), ConvertToRssi(pAd, Rssi2, RSSI_2));
pAd->ApCfg.MBSSID[i].RcvdReplayAttackCount ++;
pAd->ApCfg.MBSSID[i].RssiOfRcvdReplayAttack = RcvdRssi;
return TRUE;
}
}
return FALSE;
}
示例4: _rtw_memcmp
int _rtw_memcmp(void *dst, void *src, u32 sz)
{
#if defined (PLATFORM_LINUX)|| defined (PLATFORM_FREEBSD)
//under Linux/GNU/GLibc, the return value of memcmp for two same mem. chunk is 0
if (!(memcmp(dst, src, sz)))
return _TRUE;
else
return _FALSE;
#endif
#ifdef PLATFORM_WINDOWS
//under Windows, the return value of NdisEqualMemory for two same mem. chunk is 1
if (NdisEqualMemory (dst, src, sz))
return _TRUE;
else
return _FALSE;
#endif
}
示例5: WscAddEntryToAclList
VOID WscAddEntryToAclList(
IN PRTMP_ADAPTER pAd,
IN INT ApIdx,
IN PUCHAR pMacAddr)
{
PRT_802_11_ACL pACL = NULL;
INT i;
BOOLEAN bFound = FALSE;
pACL = &pAd->ApCfg.MBSSID[ApIdx].AccessControlList;
if ((pACL->Policy == 0) ||
(pACL->Policy == 2))
return;
if (pACL->Num >= (MAX_NUM_OF_ACL_LIST - 1))
{
DBGPRINT(RT_DEBUG_WARN, ("The AccessControlList is full, and no more entry can join the list!\n"));
return;
}
for (i=0; i<pACL->Num; i++)
{
if (NdisEqualMemory(pACL->Entry[i].Addr, pMacAddr, MAC_ADDR_LEN))
bFound = TRUE;
}
if (bFound == FALSE)
{
NdisMoveMemory(pACL->Entry[i].Addr, pMacAddr, MAC_ADDR_LEN);
pACL->Num++;
}
}
示例6: P2pPerstTabDelete
UCHAR P2pPerstTabDelete(
IN PRTMP_ADAPTER pAd,
IN UCHAR *pMacList)
{
PRT_P2P_TABLE Tab = &pAd->P2pTable;
UCHAR i;
for (i = 0; i < MAX_P2P_TABLE_SIZE; i++)
{
if (Tab->PerstEntry[i].bValid == TRUE)
{
if (NdisEqualMemory(Tab->PerstEntry[i].Addr, pMacList, 6))
{
RTMPZeroMemory(&Tab->PerstEntry[i], sizeof(RT_P2P_PERSISTENT_ENTRY));
Tab->PerstEntry[i].bValid = FALSE;
if (Tab->PerstNumber > 0)
{
Tab->PerstNumber--;
}
else
DBGPRINT(RT_DEBUG_ERROR, (" P2P - Persistent table count error. \n"));
DBGPRINT(RT_DEBUG_ERROR, (" P2P - Delete a Persistent Entry .Table Number = %d. \n", Tab->PerstNumber));
}
return i;
}
}
return 0xff;
}
示例7: RTMPRepeaterReconnectionCheck
VOID RTMPRepeaterReconnectionCheck(
IN PRTMP_ADAPTER pAd)
{
#ifdef APCLI_AUTO_CONNECT_SUPPORT
INT i;
PCHAR pApCliSsid, pApCliCfgSsid;
UCHAR CfgSsidLen;
NDIS_802_11_SSID Ssid;
if (pAd->ApCfg.bMACRepeaterEn &&
pAd->ApCfg.MACRepeaterOuiMode == 2 &&
pAd->ApCfg.ApCliAutoConnectRunning == FALSE)
{
for (i = 0; i < MAX_APCLI_NUM; i++)
{
pApCliSsid = pAd->ApCfg.ApCliTab[i].Ssid;
pApCliCfgSsid = pAd->ApCfg.ApCliTab[i].CfgSsid;
CfgSsidLen = pAd->ApCfg.ApCliTab[i].CfgSsidLen;
if ((pAd->ApCfg.ApCliTab[i].CtrlCurrState < APCLI_CTRL_AUTH ||
!NdisEqualMemory(pApCliSsid, pApCliCfgSsid, CfgSsidLen)) &&
pAd->ApCfg.ApCliTab[i].CfgSsidLen > 0 &&
pAd->Mlme.OneSecPeriodicRound % 23 == 0)
{
DBGPRINT(RT_DEBUG_TRACE, (" %s(): Scan channels for AP (%s)\n",
__FUNCTION__, pApCliCfgSsid));
pAd->ApCfg.ApCliAutoConnectRunning = TRUE;
Ssid.SsidLength = CfgSsidLen;
NdisCopyMemory(Ssid.Ssid, pApCliCfgSsid, CfgSsidLen);
ApSiteSurvey(pAd, &Ssid, SCAN_ACTIVE, FALSE);
}
}
}
#endif /* APCLI_AUTO_CONNECT_SUPPORT */
}
示例8: APCls2errAction
/*
==========================================================================
Description:
Some STA/AP
Note:
This action should never trigger AUTH state transition, therefore we
separate it from AUTH state machine, and make it as a standalone service
==========================================================================
*/
VOID APCls2errAction(
IN PRTMP_ADAPTER pAd,
IN ULONG Wcid,
IN PHEADER_802_11 pHeader)
{
HEADER_802_11 Hdr;
PUCHAR pOutBuffer = NULL;
NDIS_STATUS NStatus;
ULONG FrameLen = 0;
USHORT Reason = REASON_CLS2ERR;
MAC_TABLE_ENTRY *pEntry = NULL;
UCHAR idx;
if (Wcid < MAX_LEN_OF_MAC_TABLE)
{
pEntry = &(pAd->MacTab.Content[Wcid]);
}
if (pEntry && IS_ENTRY_CLIENT(pEntry))
{
/*ApLogEvent(pAd, pAddr, EVENT_DISASSOCIATED); */
MacTableDeleteEntry(pAd, pEntry->Aid, pHeader->Addr2);
}
else
{
for (idx = 0; idx < pAd->ApCfg.BssidNum; idx++)
{
PMULTISSID_STRUCT pMbss = &pAd->ApCfg.MBSSID[idx];
if (NdisEqualMemory(pMbss->Bssid, pHeader->Addr1, MAC_ADDR_LEN))
break;
}
if (idx == pAd->ApCfg.BssidNum)
return;
}
/* send out DEAUTH request frame */
NStatus = MlmeAllocateMemory(pAd, &pOutBuffer);
if (NStatus != NDIS_STATUS_SUCCESS)
return;
DBGPRINT(RT_DEBUG_TRACE,
("AUTH - Class 2 error, Send DEAUTH frame to "
"%02x:%02x:%02x:%02x:%02x:%02x \n",
PRINT_MAC(pHeader->Addr2)));
MgtMacHeaderInit(pAd, &Hdr, SUBTYPE_DEAUTH, 0, pHeader->Addr2,
#ifdef P2P_SUPPORT
pHeader->Addr1,
#endif /* P2P_SUPPORT */
pHeader->Addr1);
MakeOutgoingFrame(pOutBuffer, &FrameLen,
sizeof(HEADER_802_11), &Hdr,
2, &Reason,
END_OF_ARGS);
MiniportMMRequest(pAd, 0, pOutBuffer, FrameLen);
MlmeFreeMemory(pAd, pOutBuffer);
}
示例9: APCls2errAction
/*
==========================================================================
Description:
Some STA/AP
Note:
This action should never trigger AUTH state transition, therefore we
separate it from AUTH state machine, and make it as a standalone service
==========================================================================
*/
VOID APCls2errAction(
IN PRTMP_ADAPTER pAd,
IN ULONG Wcid,
IN PHEADER_802_11 pHeader)
{
HEADER_802_11 Hdr;
PUCHAR pOutBuffer = NULL;
NDIS_STATUS NStatus;
ULONG FrameLen = 0;
USHORT Reason = REASON_CLS2ERR;
MAC_TABLE_ENTRY *pEntry = NULL;
if (Wcid < MAX_LEN_OF_MAC_TABLE)
{
pEntry = &(pAd->MacTab.Content[Wcid]);
}
if (pEntry && IS_ENTRY_CLIENT(pEntry))
{
/*ApLogEvent(pAd, pAddr, EVENT_DISASSOCIATED); */
MacTableDeleteEntry(pAd, pEntry->Aid, pHeader->Addr2);
}
else
{
UCHAR bssid[MAC_ADDR_LEN];
NdisMoveMemory(bssid, pHeader->Addr1, MAC_ADDR_LEN);
bssid[5] &= pAd->ApCfg.MacMask;
if (NdisEqualMemory(pAd->CurrentAddress, bssid, MAC_ADDR_LEN) == 0)
return;
}
/* send out DEAUTH request frame */
NStatus = MlmeAllocateMemory(pAd, &pOutBuffer);
if (NStatus != NDIS_STATUS_SUCCESS)
return;
DBGPRINT(RT_DEBUG_TRACE,
("AUTH - Class 2 error, Send DEAUTH frame to "
"%02x:%02x:%02x:%02x:%02x:%02x\n",
PRINT_MAC(pHeader->Addr2)));
MgtMacHeaderInit(pAd, &Hdr, SUBTYPE_DEAUTH, 0, pHeader->Addr2,
pHeader->Addr1);
MakeOutgoingFrame(pOutBuffer, &FrameLen,
sizeof(HEADER_802_11), &Hdr,
2, &Reason,
END_OF_ARGS);
MiniportMMRequest(pAd, 0, pOutBuffer, FrameLen);
MlmeFreeMemory(pAd, pOutBuffer);
}
示例10: RTMPCheckWAIframe
/*
==========================================================================
Description:
Check whether the received frame is WAPI frame.
Arguments:
pAd - pointer to our pAdapter context
pData - the received frame
DataByteCount - the received frame's length
Return:
TRUE - This frame is WAPI frame
FALSE - otherwise
==========================================================================
*/
BOOLEAN RTMPCheckWAIframe(
IN PUCHAR pData,
IN ULONG DataByteCount)
{
if(DataByteCount < (LENGTH_802_1_H + LENGTH_WAI_H))
return FALSE;
// Skip LLC header
if (NdisEqualMemory(SNAP_802_1H, pData, 6))
{
pData += 6;
}
// Skip 2-bytes EAPoL type
if (NdisEqualMemory(WAPI_TYPE, pData, 2))
{
DBGPRINT(RT_DEBUG_TRACE, ("--> Receive a WAI frame \n"));
pData += 2;
}
else
return FALSE;
return TRUE;
}
示例11: RTMPCheckWAIframe
/*
==========================================================================
Description:
Check whether the received frame is WAPI frame.
Arguments:
pAd - pointer to our pAdapter context
pData - the received frame
DataByteCount - the received frame's length
Return:
TRUE - This frame is WAPI frame
FALSE - otherwise
==========================================================================
*/
BOOLEAN RTMPCheckWAIframe(
IN PUCHAR pData,
IN ULONG DataByteCount)
{
if(DataByteCount < (LENGTH_802_1_H + LENGTH_WAI_H))
return FALSE;
/* Skip LLC header */
if (NdisEqualMemory(SNAP_802_1H, pData, 6))
{
pData += 6;
}
/* Skip 2-bytes EAPoL type */
if (NdisEqualMemory(WAPI_TYPE, pData, 2))
{
MTWF_LOG(DBG_CAT_ALL, DBG_SUBCAT_ALL, DBG_LVL_TRACE, ("--> Receive a WAI frame \n"));
pData += 2;
}
else
return FALSE;
return TRUE;
}
示例12: NeighborMPCheck
BOOLEAN NeighborMPCheck(
IN PRTMP_ADAPTER pAd,
IN PUCHAR pMeshId,
IN UINT8 PathSelProtocolId,
IN UINT8 PathSelMetricId)
{
BOOLEAN result = FALSE;
if ((NdisEqualMemory(pMeshId, pAd->MeshTab.MeshId, pAd->MeshTab.MeshIdLen))
&& (PathSelProtocolId == pAd->MeshTab.PathProtocolId)
&& (PathSelMetricId == pAd->MeshTab.PathMetricId))
result = TRUE;
return result;
}
示例13: RTMPRepeaterReconnectionCheck
VOID RTMPRepeaterReconnectionCheck(
IN PRTMP_ADAPTER pAd)
{
#ifdef APCLI_AUTO_CONNECT_SUPPORT
INT i;
PCHAR pApCliSsid, pApCliCfgSsid;
UCHAR CfgSsidLen;
NDIS_802_11_SSID Ssid;
USHORT SiteSurveyPeriod;
if ((pAd->ApCfg.ApCliAutoConnectRunning == FALSE)
#ifdef AP_PARTIAL_SCAN_SUPPORT
&& (pAd->ApCfg.bPartialScanning == FALSE)
#endif /* AP_PARTIAL_SCAN_SUPPORT */
)
{
for (i = 0; i < MAX_APCLI_NUM; i++)
{
if (!APCLI_IF_UP_CHECK(pAd, i) ||
(pAd->ApCfg.ApCliTab[i].Enable == FALSE))
continue;
pApCliSsid = pAd->ApCfg.ApCliTab[i].Ssid;
pApCliCfgSsid = pAd->ApCfg.ApCliTab[i].CfgSsid;
CfgSsidLen = pAd->ApCfg.ApCliTab[i].CfgSsidLen;
SiteSurveyPeriod = pAd->ApCfg.ApCliTab[i].ApCliSiteSurveyPeriod;
if ((pAd->ApCfg.ApCliTab[i].CtrlCurrState < APCLI_CTRL_AUTH ||
!NdisEqualMemory(pApCliSsid, pApCliCfgSsid, CfgSsidLen)) &&
(pAd->ApCfg.ApCliTab[i].CfgSsidLen > 0) &&
(pAd->Mlme.OneSecPeriodicRound % SiteSurveyPeriod == 0))
{
DBGPRINT(RT_DEBUG_TRACE, (" %s(): Scan channels for AP (%s)\n",
__FUNCTION__, pApCliCfgSsid));
pAd->ApCfg.ApCliAutoConnectRunning = TRUE;
#ifdef AP_PARTIAL_SCAN_SUPPORT
pAd->ApCfg.bPartialScanning = TRUE;
#endif /* AP_PARTIAL_SCAN_SUPPORT */
Ssid.SsidLength = CfgSsidLen;
NdisCopyMemory(Ssid.Ssid, pApCliCfgSsid, CfgSsidLen);
ApSiteSurvey(pAd, &Ssid, SCAN_ACTIVE, FALSE);
}
}
}
#endif /* APCLI_AUTO_CONNECT_SUPPORT */
}
示例14: MlmeDelBAReqSanity
/*
==========================================================================
Description:
MLME message sanity check
Return:
TRUE if all parameters are OK, FALSE otherwise
IRQL = DISPATCH_LEVEL
==========================================================================
*/
BOOLEAN MlmeDelBAReqSanity(
IN PRTMP_ADAPTER pAd,
IN VOID *Msg,
IN ULONG MsgLen)
{
MLME_DELBA_REQ_STRUCT *pInfo;
UINT32 MaxWcidNum = MAX_LEN_OF_MAC_TABLE;
pInfo = (MLME_DELBA_REQ_STRUCT *)Msg;
#ifdef MAC_REPEATER_SUPPORT
if (pAd->ApCfg.bMACRepeaterEn)
MaxWcidNum = MAX_MAC_TABLE_SIZE_WITH_REPEATER;
#endif /* MAC_REPEATER_SUPPORT */
if ((MsgLen != sizeof(MLME_DELBA_REQ_STRUCT)))
{
DBGPRINT(RT_DEBUG_ERROR, ("MlmeDelBAReqSanity fail - message lenght not correct.\n"));
return FALSE;
}
if ((pInfo->Wcid >= MaxWcidNum))
{
DBGPRINT(RT_DEBUG_ERROR, ("MlmeDelBAReqSanity fail - The peer Mac is not associated yet.\n"));
return FALSE;
}
if ((pInfo->TID & 0xf0))
{
DBGPRINT(RT_DEBUG_ERROR, ("MlmeDelBAReqSanity fail - The peer TID is incorrect.\n"));
return FALSE;
}
if (NdisEqualMemory(pAd->MacTab.Content[pInfo->Wcid].Addr, pInfo->Addr, MAC_ADDR_LEN) == 0)
{
DBGPRINT(RT_DEBUG_ERROR, ("MlmeDelBAReqSanity fail - the peer addr dosen't exist.\n"));
return FALSE;
}
return TRUE;
}
示例15: P2pPerstTabSearch
UCHAR P2pPerstTabSearch(
IN PRTMP_ADAPTER pAd,
IN PUCHAR Addr,
IN PUCHAR Bssid,
IN PUCHAR InfAddr)
{
PRT_P2P_CONFIG pP2PCtrl = &pAd->P2pCfg;
UCHAR i;
PRT_P2P_TABLE Tab = &pAd->P2pTable;
UCHAR index = P2P_NOT_FOUND;
UCHAR Allff[MAC_ADDR_LEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
UCHAR AllZero[MAC_ADDR_LEN] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
if ((Addr[0] & 0x1) == 0x1)
return index;
if (Addr && NdisEqualMemory(Allff, Addr, MAC_ADDR_LEN))
return index;
if (Addr && NdisEqualMemory(AllZero, Addr, MAC_ADDR_LEN))
return index;
for (i = 0; i < MAX_P2P_TABLE_SIZE; i++)
{
if ((Tab->PerstEntry[i].bValid == TRUE) &&
((Addr && NdisEqualMemory(&Tab->PerstEntry[i].Addr, Addr, MAC_ADDR_LEN)) ||
(Bssid && NdisEqualMemory(&Tab->PerstEntry[i].Addr, Bssid, MAC_ADDR_LEN)) ||
(InfAddr && NdisEqualMemory(&Tab->PerstEntry[i].Addr, InfAddr, MAC_ADDR_LEN)))
)
{
DBGPRINT(RT_DEBUG_TRACE, (" P2P - i = %d. \n", i));
/* If My rule is client, it must be perst profile when I am in staion opmode. */
if((Tab->PerstEntry[i].MyRule == P2P_IS_CLIENT) && (pAd->OpMode == OPMODE_STA))
{
index = i;
}
else if ((Tab->PerstEntry[i].MyRule == P2P_IS_GO)
&& (NdisEqualMemory(Tab->PerstEntry[i].Profile.MacAddr, pP2PCtrl->CurrentAddress, 6)))
{
index = i;
}
}
}
return index;
}