Lines Matching defs:pNetFlt

29     PVBOXNETFLTINS pNetFlt = (PVBOXNETFLTINS)NdisIMGetDeviceContext(MiniportAdapterHandle);
32 LogFlow(("==>"__FUNCTION__": pNetFlt (0x%p)\n", pNetFlt));
34 pNetFlt->u.s.WinIf.hMiniport = MiniportAdapterHandle;
35 Assert(vboxNetFltWinGetOpState(&pNetFlt->u.s.WinIf.MpState) == kVBoxNetDevOpState_Initializing);
38 vboxNetFltWinSetOpState(&pNetFlt->u.s.WinIf.MpState, kVBoxNetDevOpState_Initializing);
40 NDIS_MEDIUM enmMedium = pNetFlt->u.s.WinIf.enmMedium;
58 NdisMSetAttributesEx(MiniportAdapterHandle, pNetFlt, 0,
66 pNetFlt->u.s.WinIf.MpIndicatedMediaStatus = NDIS_STATUS_MEDIA_CONNECT;
67 Assert(vboxNetFltWinGetPowerState(&pNetFlt->u.s.WinIf.MpState) == NdisDeviceStateD3);
68 vboxNetFltWinSetPowerState(&pNetFlt->u.s.WinIf.MpState, NdisDeviceStateD0);
69 Assert(pNetFlt->u.s.WinIf.MpState.OpState == kVBoxNetDevOpState_Initializing);
70 vboxNetFltWinSetOpState(&pNetFlt->u.s.WinIf.MpState, kVBoxNetDevOpState_Initialized);
81 Assert(vboxNetFltWinGetPowerState(&pNetFlt->u.s.WinIf.MpState) == NdisDeviceStateD3);
82 Assert(pNetFlt->u.s.WinIf.MpState.OpState == kVBoxNetDevOpState_Initializing);
83 vboxNetFltWinSetOpState(&pNetFlt->u.s.WinIf.MpState, kVBoxNetDevOpState_Deinitialized);
86 NdisSetEvent(&pNetFlt->u.s.WinIf.MpInitCompleteEvent);
88 LogFlow(("<=="__FUNCTION__": pNetFlt (0x%p), Status (0x%x)\n", pNetFlt, Status));
98 static NDIS_STATUS vboxNetFltWinSendPassThru(PVBOXNETFLTINS pNetFlt, PNDIS_PACKET pPacket
105 NDIS_STATUS Status = vboxNetFltWinPrepareSendPacket(pNetFlt, pPacket, &pMyPacket);
112 vboxNetFltWinLbPutSendPacket(pNetFlt, pMyPacket, false /* bFromIntNet */);
117 NdisSend(&Status, pNetFlt->u.s.WinIf.hBinding, pMyPacket);
123 vboxNetFltWinLbRemoveSendPacket(pNetFlt, pMyPacket);
132 DECLHIDDEN(NDIS_STATUS) vboxNetFltWinMpDoDeinitialization(PVBOXNETFLTINS pNetFlt)
136 Assert(vboxNetFltWinGetOpState(&pNetFlt->u.s.WinIf.MpState) == kVBoxNetDevOpState_Initialized);
138 RTSpinlockAcquire(pNetFlt->hSpinlock);
139 ASMAtomicUoWriteBool(&pNetFlt->fDisconnectedFromHost, true);
140 ASMAtomicUoWriteBool(&pNetFlt->fRediscoveryPending, false);
141 ASMAtomicUoWriteU64(&pNetFlt->NanoTSLastRediscovery, NanoTS);
143 vboxNetFltWinSetOpState(&pNetFlt->u.s.WinIf.MpState, kVBoxNetDevOpState_Deinitializing);
145 RTSpinlockRelease(pNetFlt->hSpinlock);
147 vboxNetFltWinWaitDereference(&pNetFlt->u.s.WinIf.MpState);
150 int cPPUsage = NdisPacketPoolUsage(pNetFlt->u.s.WinIf.hRecvPacketPool);
155 vboxNetFltWinSetOpState(&pNetFlt->u.s.WinIf.MpState, kVBoxNetDevOpState_Deinitialized);
232 DECLHIDDEN(NDIS_STATUS) vboxNetFltWinMpDoInitialization(PVBOXNETFLTINS pNetFlt, NDIS_HANDLE hMiniportAdapter, NDIS_HANDLE hWrapperConfigurationContext)
235 pNetFlt->u.s.WinIf.hMiniport = hMiniportAdapter;
237 LogFlow(("==>"__FUNCTION__" : pNetFlt 0x%p\n", pNetFlt));
239 Assert(vboxNetFltWinGetOpState(&pNetFlt->u.s.WinIf.MpState) == kVBoxNetDevOpState_Deinitialized);
240 vboxNetFltWinSetOpState(&pNetFlt->u.s.WinIf.MpState, kVBoxNetDevOpState_Initializing);
242 vboxNetFltWinMpReadApplyConfig(pNetFlt, hMiniportAdapter, hWrapperConfigurationContext);
244 NdisMSetAttributesEx(hMiniportAdapter, pNetFlt,
250 Assert(vboxNetFltWinGetPowerState(&pNetFlt->u.s.WinIf.MpState) == NdisDeviceStateD3);
251 vboxNetFltWinSetPowerState(&pNetFlt->u.s.WinIf.MpState, NdisDeviceStateD0);
252 Assert(vboxNetFltWinGetOpState(&pNetFlt->u.s.WinIf.MpState) == kVBoxNetDevOpState_Initializing);
253 vboxNetFltWinSetOpState(&pNetFlt->u.s.WinIf.MpState, kVBoxNetDevOpState_Initialized);
257 LogFlow(("<=="__FUNCTION__" : pNetFlt 0x%p, Status 0x%x\n", pNetFlt, Status));
340 PVBOXNETFLTINS pNetFlt;
347 Status = vboxNetFltWinPtInitBind(&pNetFlt, MiniportAdapterHandle, &RtlStr, WrapperConfigurationContext);
351 Assert(vboxNetFltWinGetOpState(&pNetFlt->u.s.WinIf.MpState) == kVBoxNetDevOpState_Initialized);
352 vboxNetFltWinSetOpState(&pNetFlt->u.s.WinIf.MpState, kVBoxNetDevOpState_Initialized);
354 NdisMIndicateStatus(pNetFlt->u.s.WinIf.hMiniport,
362 Assert(vboxNetFltWinGetOpState(&pNetFlt->u.s.WinIf.MpState) == kVBoxNetDevOpState_Deinitialized);
363 vboxNetFltWinSetOpState(&pNetFlt->u.s.WinIf.MpState, kVBoxNetDevOpState_Deinitialized);
396 PVBOXNETFLTINS pNetFlt = (PVBOXNETFLTINS)hMiniportAdapterContext;
400 LogFlow(("==>"__FUNCTION__": pNetFlt (0x%p)\n", pNetFlt));
404 if (vboxNetFltWinIncReferenceWinIfNetFlt(pNetFlt, cNumberOfPackets, &bNetFltActive))
428 || !vboxNetFltWinPostIntnet(pNetFlt, pPacket, VBOXNETFLT_PACKET_SRC_HOST)
430 || (fStatus = vboxNetFltWinQuEnqueuePacket(pNetFlt, pPacket, VBOXNETFLT_PACKET_SRC_HOST)) != NDIS_STATUS_SUCCESS
435 Status = vboxNetFltWinSendPassThru(pNetFlt, pPacket
445 STATISTIC_INCREASE(pNetFlt->u.s.WinIf.cTxError);
454 NdisMSendComplete(pNetFlt->u.s.WinIf.hMiniport, pPacket, Status);
464 NdisMSendComplete(pNetFlt->u.s.WinIf.hMiniport, pPacket, NDIS_STATUS_SUCCESS);
474 vboxNetFltWinDecReferenceNetFlt(pNetFlt, cNetFltRefs);
478 vboxNetFltWinDecReferenceModePassThru(pNetFlt, cPassThruRefs);
482 vboxNetFltWinDecReferenceWinIf(pNetFlt, cAdaptRefs);
487 NDIS_HANDLE h = pNetFlt->u.s.WinIf.hMiniport;
500 LogFlow(("<=="__FUNCTION__": pNetFlt (0x%p)\n", pNetFlt));
504 static UINT vboxNetFltWinMpRequestStatePrep(PVBOXNETFLTINS pNetFlt, NDIS_STATUS *pStatus)
506 Assert(!pNetFlt->u.s.WinIf.StateFlags.fRequestInfo);
508 if (vboxNetFltWinGetOpState(&pNetFlt->u.s.WinIf.PtState) > kVBoxNetDevOpState_Initialized /* protocol unbind in progress */
509 || vboxNetFltWinGetPowerState(&pNetFlt->u.s.WinIf.MpState) > NdisDeviceStateD0)
515 RTSpinlockAcquire(pNetFlt->hSpinlock);
516 Assert(!pNetFlt->u.s.WinIf.StateFlags.fRequestInfo);
517 if (vboxNetFltWinGetOpState(&pNetFlt->u.s.WinIf.PtState) > kVBoxNetDevOpState_Initialized /* protocol unbind in progress */
518 || vboxNetFltWinGetPowerState(&pNetFlt->u.s.WinIf.MpState) > NdisDeviceStateD0)
520 RTSpinlockRelease(pNetFlt->hSpinlock);
525 if ((vboxNetFltWinGetPowerState(&pNetFlt->u.s.WinIf.PtState) > NdisDeviceStateD0)
526 && !pNetFlt->u.s.WinIf.StateFlags.fStandBy)
528 pNetFlt->u.s.WinIf.StateFlags.fRequestInfo = VBOXNDISREQUEST_INPROGRESS | VBOXNDISREQUEST_QUEUED;
529 RTSpinlockRelease(pNetFlt->hSpinlock);
534 if (pNetFlt->u.s.WinIf.StateFlags.fStandBy)
536 RTSpinlockRelease(pNetFlt->hSpinlock);
541 pNetFlt->u.s.WinIf.StateFlags.fRequestInfo = VBOXNDISREQUEST_INPROGRESS;
543 RTSpinlockRelease(pNetFlt->hSpinlock);
549 static NDIS_STATUS vboxNetFltWinMpRequestPostQuery(PVBOXNETFLTINS pNetFlt)
551 if (pNetFlt->u.s.WinIf.PassDownRequest.DATA.QUERY_INFORMATION.Oid == OID_GEN_CURRENT_PACKET_FILTER && VBOXNETFLT_PROMISCUOUS_SUPPORTED(pNetFlt))
554 const bool fWinIfActive = vboxNetFltWinReferenceWinIfNetFlt(pNetFlt, &fNetFltActive);
556 Assert(pNetFlt->u.s.WinIf.PassDownRequest.DATA.QUERY_INFORMATION.InformationBuffer);
557 Assert(!pNetFlt->u.s.WinIf.StateFlags.fProcessingPacketFilter);
562 *((PULONG)pNetFlt->u.s.WinIf.PassDownRequest.DATA.QUERY_INFORMATION.InformationBuffer) = pNetFlt->u.s.WinIf.fUpperProtocolSetFilter;
565 vboxNetFltWinMpRequestStateComplete(pNetFlt);
567 vboxNetFltWinDereferenceNetFlt(pNetFlt);
568 vboxNetFltWinDereferenceWinIf(pNetFlt);
574 pNetFlt->u.s.WinIf.StateFlags.fProcessingPacketFilter = 1;
575 pNetFlt->u.s.WinIf.StateFlags.fPPFNetFlt = 0;
582 NdisRequest(&Status, pNetFlt->u.s.WinIf.hBinding, &pNetFlt->u.s.WinIf.PassDownRequest);
585 vboxNetFltWinPtRequestComplete(pNetFlt, &pNetFlt->u.s.WinIf.PassDownRequest, Status);
599 PVBOXNETFLTINS pNetFlt = (PVBOXNETFLTINS)MiniportAdapterContext;
602 LogFlow(("==>"__FUNCTION__": pNetFlt (0x%p), Oid (%s)\n", pNetFlt, vboxNetFltWinMpDumpOid(Oid)));
619 UINT uOp = vboxNetFltWinMpRequestStatePrep(pNetFlt, &Status);
623 pNetFlt->u.s.WinIf.PassDownRequest.RequestType = NdisRequestQueryInformation;
624 pNetFlt->u.s.WinIf.PassDownRequest.DATA.QUERY_INFORMATION.Oid = Oid;
625 pNetFlt->u.s.WinIf.PassDownRequest.DATA.QUERY_INFORMATION.InformationBuffer = InformationBuffer;
626 pNetFlt->u.s.WinIf.PassDownRequest.DATA.QUERY_INFORMATION.InformationBufferLength = InformationBufferLength;
627 pNetFlt->u.s.WinIf.pcPDRBytesNeeded = BytesNeeded;
628 pNetFlt->u.s.WinIf.pcPDRBytesRW = BytesWritten;
633 Status = vboxNetFltWinMpRequestPostQuery(pNetFlt);
640 LogFlow(("<=="__FUNCTION__": pNetFlt (0x%p), Oid (%s), Status (0x%x)\n", pNetFlt, vboxNetFltWinMpDumpOid(Oid), Status));
647 static NDIS_STATUS vboxNetFltWinMpHandlePowerState(PVBOXNETFLTINS pNetFlt, NDIS_DEVICE_POWER_STATE enmState)
649 if (vboxNetFltWinGetPowerState(&pNetFlt->u.s.WinIf.MpState) > NdisDeviceStateD0
658 if (vboxNetFltWinGetPowerState(&pNetFlt->u.s.WinIf.MpState) == NdisDeviceStateD0
661 pNetFlt->u.s.WinIf.StateFlags.fStandBy = TRUE;
664 if (vboxNetFltWinGetPowerState(&pNetFlt->u.s.WinIf.MpState) > NdisDeviceStateD0
667 pNetFlt->u.s.WinIf.StateFlags.fStandBy = FALSE;
671 vboxNetFltWinSetPowerState(&pNetFlt->u.s.WinIf.MpState, enmState);
674 if (pNetFlt->u.s.WinIf.StateFlags.fStandBy == FALSE)
676 if (pNetFlt->u.s.WinIf.MpIndicatedMediaStatus != pNetFlt->u.s.WinIf.MpUnindicatedMediaStatus)
678 NdisMIndicateStatus(pNetFlt->u.s.WinIf.hMiniport, pNetFlt->u.s.WinIf.MpUnindicatedMediaStatus, NULL, 0);
679 NdisMIndicateStatusComplete(pNetFlt->u.s.WinIf.hMiniport);
680 pNetFlt->u.s.WinIf.MpIndicatedMediaStatus = pNetFlt->u.s.WinIf.MpUnindicatedMediaStatus;
685 pNetFlt->u.s.WinIf.MpUnindicatedMediaStatus = pNetFlt->u.s.WinIf.MpIndicatedMediaStatus;
693 static NDIS_STATUS vboxNetFltWinMpRequestPostSet(PVBOXNETFLTINS pNetFlt)
695 if (pNetFlt->u.s.WinIf.PassDownRequest.DATA.SET_INFORMATION.Oid == OID_GEN_CURRENT_PACKET_FILTER && VBOXNETFLT_PROMISCUOUS_SUPPORTED(pNetFlt))
699 const bool fWinIfActive = vboxNetFltWinReferenceWinIfNetFlt(pNetFlt, &fNetFltActive);
701 Assert(pNetFlt->u.s.WinIf.PassDownRequest.DATA.SET_INFORMATION.InformationBuffer);
702 Assert(!pNetFlt->u.s.WinIf.StateFlags.fProcessingPacketFilter);
712 pNetFlt->u.s.WinIf.fUpperProtocolSetFilter = *((PULONG)pNetFlt->u.s.WinIf.PassDownRequest.DATA.SET_INFORMATION.InformationBuffer);
713 pNetFlt->u.s.WinIf.StateFlags.fUpperProtSetFilterInitialized = TRUE;
715 if (!(pNetFlt->u.s.WinIf.fOurSetFilter & NDIS_PACKET_TYPE_PROMISCUOUS))
717 pNetFlt->u.s.WinIf.fSetFilterBuffer = NDIS_PACKET_TYPE_PROMISCUOUS;
718 pNetFlt->u.s.WinIf.PassDownRequest.DATA.SET_INFORMATION.InformationBuffer = &pNetFlt->u.s.WinIf.fSetFilterBuffer;
719 pNetFlt->u.s.WinIf.PassDownRequest.DATA.SET_INFORMATION.InformationBufferLength = sizeof (pNetFlt->u.s.WinIf.fSetFilterBuffer);
720 pNetFlt->u.s.WinIf.StateFlags.fProcessingPacketFilter = 1;
721 pNetFlt->u.s.WinIf.StateFlags.fPPFNetFlt = 1;
726 vboxNetFltWinDereferenceNetFlt(pNetFlt);
727 vboxNetFltWinDereferenceWinIf(pNetFlt);
730 vboxNetFltWinMpRequestStateComplete(pNetFlt);
736 pNetFlt->u.s.WinIf.StateFlags.fProcessingPacketFilter = 1;
737 pNetFlt->u.s.WinIf.StateFlags.fPPFNetFlt = 0;
744 NdisRequest(&Status, pNetFlt->u.s.WinIf.hBinding, &pNetFlt->u.s.WinIf.PassDownRequest);
747 vboxNetFltWinPtRequestComplete(pNetFlt, &pNetFlt->u.s.WinIf.PassDownRequest, Status);
753 DECLHIDDEN(NDIS_STATUS) vboxNetFltWinMpRequestPost(PVBOXNETFLTINS pNetFlt)
755 switch (pNetFlt->u.s.WinIf.PassDownRequest.RequestType)
758 return vboxNetFltWinMpRequestPostQuery(pNetFlt);
760 return vboxNetFltWinMpRequestPostSet(pNetFlt);
774 PVBOXNETFLTINS pNetFlt = (PVBOXNETFLTINS)MiniportAdapterContext;
777 LogFlow(("==>"__FUNCTION__": pNetFlt (0x%p), Oid (%s)\n", pNetFlt, vboxNetFltWinMpDumpOid(Oid)));
786 Status = vboxNetFltWinMpHandlePowerState(pNetFlt, *penmState);
810 UINT uOp = vboxNetFltWinMpRequestStatePrep(pNetFlt, &Status);
814 pNetFlt->u.s.WinIf.PassDownRequest.RequestType = NdisRequestSetInformation;
815 pNetFlt->u.s.WinIf.PassDownRequest.DATA.SET_INFORMATION.Oid = Oid;
816 pNetFlt->u.s.WinIf.PassDownRequest.DATA.SET_INFORMATION.InformationBuffer = InformationBuffer;
817 pNetFlt->u.s.WinIf.PassDownRequest.DATA.SET_INFORMATION.InformationBufferLength = InformationBufferLength;
818 pNetFlt->u.s.WinIf.pcPDRBytesNeeded = BytesNeeded;
819 pNetFlt->u.s.WinIf.pcPDRBytesRW = BytesRead;
824 Status = vboxNetFltWinMpRequestPostSet(pNetFlt);
831 LogFlow(("<=="__FUNCTION__": pNetFlt (0x%p), Oid (%s), Status (0x%x)\n", pNetFlt, vboxNetFltWinMpDumpOid(Oid), Status));
899 PVBOXNETFLTINS pNetFlt = (PVBOXNETFLTINS)MiniportAdapterContext;
908 LogFlow(("==>"__FUNCTION__": pNetFlt (0x%p), Oid (%s)\n", pNetFlt, vboxNetFltWinMpDumpOid(Oid)));
988 bool bActive = vboxNetFltWinReferenceWinIfNetFltFromAdapt(pNetFlt, bNetFltActive);
1000 vboxNetFltWinDereferenceWinIf(pNetFlt);
1004 vboxNetFltWinDereferenceNetFlt(pNetFlt);
1008 vboxNetFltWinDereferenceModePassThru(pNetFlt);
1042 u64Info = pNetFlt->u.s.WinIf.cTxSuccess;
1056 u64Info = pNetFlt->u.s.WinIf.cRxSuccess;
1070 u32Info = pNetFlt->u.s.WinIf.cTxError;
1074 u32Info = pNetFlt->u.s.WinIf.cRxError;
1087 pvInfo = &pNetFlt->u.s.MacAddr;
1092 pvInfo = &pNetFlt->u.s.MacAddr;
1135 LogFlow(("<=="__FUNCTION__": pNetFlt (0x%p), Oid (%s), Status (0x%x)\n", pNetFlt, vboxNetFltWinMpDumpOid(Oid), Status));
1147 PVBOXNETFLTINS pNetFlt = (PVBOXNETFLTINS) MiniportAdapterContext;
1150 LogFlow(("==>"__FUNCTION__": pNetFlt (0x%p), Oid (%s)\n", pNetFlt, vboxNetFltWinMpDumpOid(Oid)));
1198 Status = vboxNetFltWinMpHandlePowerState(pNetFlt, *penmState);
1222 LogFlow(("<=="__FUNCTION__": pNetFlt (0x%p), Oid (%s), Status (0x%x)\n", pNetFlt, vboxNetFltWinMpDumpOid(Oid), Status));
1327 PVBOXNETFLTINS pNetFlt = (PVBOXNETFLTINS)hMiniportAdapterContext;
1332 LogFlow(("==>"__FUNCTION__": pNetFlt (0x%p)\n", pNetFlt));
1351 vboxNetFltWinDereferenceWinIf(pNetFlt);
1353 LogFlow(("<=="__FUNCTION__": pNetFlt (0x%p)\n", pNetFlt));
1364 PVBOXNETFLTINS pNetFlt = (PVBOXNETFLTINS)hContext;
1367 LogFlow(("==>"__FUNCTION__": pNetFlt (0x%p)\n", pNetFlt));
1369 if (vboxNetFltWinGetPowerState(&pNetFlt->u.s.WinIf.PtState) != NdisDeviceStateD0
1370 || vboxNetFltWinGetPowerState(&pNetFlt->u.s.WinIf.MpState) != NdisDeviceStateD0)
1372 LogFlow(("<=="__FUNCTION__": pNetFlt (0x%p), Status (0x%x)\n", pNetFlt, NDIS_STATUS_FAILURE));
1376 NdisTransferData(&Status, pNetFlt->u.s.WinIf.hBinding, MiniportReceiveContext,
1379 LogFlow(("<=="__FUNCTION__": pNetFlt (0x%p), Status (0x%x)\n", pNetFlt, Status));
1382 LogFlow(("==>"__FUNCTION__": pNetFlt (0x%p)\n", hContext));
1385 LogFlow(("<=="__FUNCTION__": pNetFlt (0x%p), Status (0x%x)\n", hContext, NDIS_STATUS_FAILURE));
1392 PVBOXNETFLTINS pNetFlt = (PVBOXNETFLTINS)hContext;
1395 LogFlow(("==>"__FUNCTION__": pNetFlt (0x%p)\n", pNetFlt));
1398 if (vboxNetFltWinGetWinIfState(pNetFlt) == kVBoxWinIfState_Disconnecting)
1400 Assert(vboxNetFltWinGetOpState(&pNetFlt->u.s.WinIf.MpState) == kVBoxNetDevOpState_Deinitializing);
1401 vboxNetFltWinSetOpState(&pNetFlt->u.s.WinIf.MpState, kVBoxNetDevOpState_Deinitializing);
1403 vboxNetFltWinPtCloseInterface(pNetFlt, &Status);
1405 Assert(vboxNetFltWinGetOpState(&pNetFlt->u.s.WinIf.PtState) == kVBoxNetDevOpState_Deinitializing);
1406 vboxNetFltWinSetOpState(&pNetFlt->u.s.WinIf.PtState, kVBoxNetDevOpState_Deinitialized);
1407 vboxNetFltWinSetOpState(&pNetFlt->u.s.WinIf.MpState, kVBoxNetDevOpState_Deinitialized);
1413 Assert(vboxNetFltWinGetOpState(&pNetFlt->u.s.WinIf.MpState) == kVBoxNetDevOpState_Initialized);
1417 Status = vboxNetFltWinDetachFromInterface(pNetFlt, false);
1421 LogFlow(("<=="__FUNCTION__": pNetFlt (0x%p)\n", pNetFlt));