-- ---------------------------------------------------------------------------------------------------------------------------------------------------------- -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nt!RtlAssert+0xea C/C++/ASM > dnsfirewall!onDatagramDataClassify+0xdb3d [c:\vs12projects\publicdnswsa\dnsfirewall\dnsfirewall.c @ 13963] C/C++/ASM NETIO!ProcessCallout+0x226 C/C++/ASM NETIO!ArbitrateAndEnforce+0x2c9 C/C++/ASM NETIO!KfdClassify+0x831 C/C++/ASM tcpip!WFPDatagramDataShimV4+0x44d C/C++/ASM tcpip!ProcessALEForTransportPacket+0x4a9dc C/C++/ASM tcpip!WfpProcessOutTransportStackIndication+0x398 C/C++/ASM tcpip!IppInspectLocalDatagramsOut+0x68d C/C++/ASM tcpip!IppSendDatagramsCommon+0x3f8 C/C++/ASM tcpip!UdpSendMessagesOnPathCreation+0x484 C/C++/ASM tcpip!UdpSendMessages+0x24a C/C++/ASM tcpip!UdpTlProviderSendMessagesCalloutRoutine+0x15 C/C++/ASM nt!KeExpandKernelStackAndCalloutInternal+0xf3 C/C++/ASM tcpip!UdpTlProviderSendMessages+0x6c C/C++/ASM afd!AfdFastDatagramSend+0x536 C/C++/ASM afd!AfdFastIoDeviceControl+0x1570 C/C++/ASM nt!IopXxxControlFile+0x7c8 C/C++/ASM nt!NtDeviceIoControlFile+0x56 C/C++/ASM nt!KiSystemServiceCopyEnd+0x13 C/C++/ASM ntdll!NtDeviceIoControlFile+0xa C/C++/ASM mswsock!WSPSendTo+0x229 C/C++/ASM WS2_32!sendto+0xcb C/C++/ASM WS2InterceptDLL!CWS2InterceptAPP::mf_sendto+0xb0a [c:\vs12projects\publicdnswsa\ws2interceptdll\ws2interceptdll.cpp @ 2172] C/C++/ASM 0x1 C/C++/ASM 0x00000088`e4a96a10 C/C++/ASM 0x00000088`f170f500 C/C++/ASM 0xcccccccc`cccccccc C/C++/ASM 0x00000088`e4a96a50 C/C++/ASM 0xcccccccc`00000010 C/C++/ASM 0xcccccccc`cccccccc C/C++/ASM 0xcccccccc`0000001c C/C++/ASM 0xcccccccc`cccccccc C/C++/ASM 0x00000088`e36c49b0 C/C++/ASM -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ WdfObjectReleaseLock(wdfDeviceObject); break; default: TraceEvents( TRACE_LEVEL_ERROR, TRACE_DNSFIREWALL, "%!FUNC! line:%!LINE! %!LEVEL! Invalid State Superintendent of State machine = %u", pFlowData->enContextState ); push_css(pFlowData->arContextStateStack, pFlowData->enContextState); classifyOut->actionType = FWP_ACTION_BLOCK; classifyOut->rights &= ~FWPS_RIGHT_ACTION_WRITE; ASSERT(FALSE); WdfObjectReleaseLock(wdfDeviceObject); break; } } -- ========================================================================================================================================================== + inFixedValues 0xffffd001`421cbaf8 struct FWPS_INCOMING_VALUES0_ * struct FWPS_INCOMING_VALUES0_ * + inMetaValues 0xffffd001`421cbb10 struct FWPS_INCOMING_METADATA_VALUES0_ * struct FWPS_INCOMING_METADATA_VALUES0_ * + layerData 0xffffe001`902fd700 void * + classifyContext 0x00000000`00000000 void * + filter 0xffffe001`92bf0010 struct FWPS_FILTER1_ * struct FWPS_FILTER1_ * flowContext 0n18446708896022715616 unsigned int64 + classifyOut 0xffffd001`421cb558 struct FWPS_CLASSIFY_OUT0_ * struct FWPS_CLASSIFY_OUT0_ * bEmpty 0x00 '' unsigned char bInbound 0x00 '' unsigned char bIPv6 0x00 '' unsigned char bSignalWorkerThread 0x00 '' unsigned char bTestIpV4 0x00 '' unsigned char enPacketDirection FWP_DIRECTION_OUTBOUND (0n0) FWP_DIRECTION_ enUdpCompartmentID DEFAULT_COMPARTMENT_ID (0n1) COMPARTMENT_ID hFlowHandle 0n866 unsigned int64 + hInjectionHandle 0xffffe001`8f137580 void * nDataSize 0n36 unsigned int packetState FWPS_PACKET_NOT_INJECTED (0n0) FWPS_PACKET_INJECTION_STATE_ + pAddressEnd 0x00000000`00000000 unsigned short * + pFlowContext 0x00000000`00000000 struct _FLOW_DATA * struct _FLOW_DATA * - pFlowData 0xffffe001`8e78dce0 struct _FLOW_DATA * struct _FLOW_DATA * + pThis 0xffffe001`8e78dce0 struct _FLOW_DATA * struct _FLOW_DATA * nFileIndex 0n0 int nThreadIndex 0n0 int + listEntry struct _LIST_ENTRY [ 0xfffff801`b428a230 - 0xfffff801`b428a230 ] struct _LIST_ENTRY + threadListEntry struct _LIST_ENTRY [ 0xfffff801`b428a220 - 0xfffff801`b428a220 ] struct _LIST_ENTRY + wdfFlowFileObject 0x00001ffe`7140cfd8 struct WDFFILEOBJECT__ * struct WDFFILEOBJECT__ * + wdfFlowQueue 0x00001ffe`6fc95758 struct WDFQUEUE__ * struct WDFQUEUE__ * + wdfWaitFlowDoneQueue 0x00001ffe`6cb4ffd8 struct WDFQUEUE__ * struct WDFQUEUE__ * + wdfWaitUdpQuery2Queue 0x00000000`00000000 struct WDFQUEUE__ * struct WDFQUEUE__ * + wdfWaitUdpSetFirewallFilterQueue 0x00001ffe`6cc98de8 struct WDFQUEUE__ * struct WDFQUEUE__ * + wdfWaitDnsQueryQueue 0x00000000`00000000 struct WDFQUEUE__ * struct WDFQUEUE__ * + wdfUdpQueryPermitQueue 0x00000000`00000000 struct WDFQUEUE__ * struct WDFQUEUE__ * + wdfUdpQuery2PermitQueue 0x00000000`00000000 struct WDFQUEUE__ * struct WDFQUEUE__ * + wdfWaitTcpNewMessageQueue 0x00000000`00000000 struct WDFQUEUE__ * struct WDFQUEUE__ * + wdfWaitTcpResponceQueue 0x00000000`00000000 struct WDFQUEUE__ * struct WDFQUEUE__ * + wdfTcpQueryPermitQueue 0x00000000`00000000 struct WDFQUEUE__ * struct WDFQUEUE__ * + wdfTcpQueryInjectQueue 0x00000000`00000000 struct WDFQUEUE__ * struct WDFQUEUE__ * + wdfTcpResponcePermitQueue 0x00000000`00000000 struct WDFQUEUE__ * struct WDFQUEUE__ * + wdfTcpResponceInjectQueue 0x00000000`00000000 struct WDFQUEUE__ * struct WDFQUEUE__ * enIpProto IPPROTO_UDP (0n17) IPPROTO nRemoteAddressV4 0n3323685607 unsigned int nRemoteAddressV4N 0n3882490822 unsigned int usRemotePort 0n14924 unsigned short flowHandle 0n866 unsigned int64 + hAleAuthRecvAcceptCompletionHandle 0x00000000`00000000 void * + hAleAuthRecvAcceptContext 0x00000000`00000000 void * enContextState csUdpFlowBreak (0n21) _context_state - arContextStateStack _context_state [16] _context_state [16] [0] csUdpFlowBreak (0n21) _context_state [1] csUdpFlowBreak (0n21) _context_state [2] csUdpWaitResponce2Pended (0n33) _context_state [3] csUdpPermitQuery2Done (0n32) _context_state [4] csUdpWaitPermitQuery2 (0n31) _context_state [5] csUdpPermitQuery2Pended (0n30) _context_state [6] csUdpWaitApprovalQuery2 (0n27) _context_state [7] csUdpWaitReadQuery2 (0n26) _context_state [8] csUdpFlow1Done (0n24) _context_state [9] csUdpWaitResponce1 (0n23) _context_state [10] csUdpWaitResponce1Pended (0n22) _context_state [11] csUdpPermitQueryDone (0n20) _context_state [12] csUdpWaitPermitQuery (0n18) _context_state [13] csUdpPermitQueryPended (0n17) _context_state [14] csUdpWaitApprovalQuery (0n15) _context_state [15] csUdpWaitReadQuery (0n13) _context_state enFlowDataOwner foFlowedFileList (0n11) _flow_data_owner - arFlowDataOwnerStack _flow_data_owner [16] _flow_data_owner [16] [0] foFlowedFileList (0n11) _flow_data_owner [1] foUdpALEFlowEstablishList (0n10) _flow_data_owner [2] foUdpALEAcceptRecvList (0n7) _flow_data_owner [3] foAcceptableList (0n5) _flow_data_owner [4] foWaitForSetFilterFileList (0n4) _flow_data_owner [5] foWaitForQuery2FileList (0n3) _flow_data_owner [6] foWaitForDoneFileList (0n2) _flow_data_owner [7] foFreeFileList (0n1) _flow_data_owner [8] foNoOwner (0n0) _flow_data_owner [9] foNoOwner (0n0) _flow_data_owner [10] foNoOwner (0n0) _flow_data_owner [11] foNoOwner (0n0) _flow_data_owner [12] foNoOwner (0n0) _flow_data_owner [13] foNoOwner (0n0) _flow_data_owner [14] foNoOwner (0n0) _flow_data_owner [15] foNoOwner (0n0) _flow_data_owner + stRemoteAddressV6 struct FWP_BYTE_ARRAY16_ struct FWP_BYTE_ARRAY16_ enPacketDirection FWP_DIRECTION_OUTBOUND (0n0) FWP_DIRECTION_ + pUdpQueryBufferList 0x00000000`00000000 struct _NET_BUFFER_LIST * struct _NET_BUFFER_LIST * + pUdpQueryCloneBufferList 0x00000000`00000000 struct _NET_BUFFER_LIST * struct _NET_BUFFER_LIST * + pUdpQuery2BufferList 0x00000000`00000000 struct _NET_BUFFER_LIST * struct _NET_BUFFER_LIST * + pUdpQuery2CloneBufferList 0x00000000`00000000 struct _NET_BUFFER_LIST * struct _NET_BUFFER_LIST * + pTcpQueryBufferList 0x00000000`00000000 struct _NET_BUFFER_LIST * struct _NET_BUFFER_LIST * + pTcpQueryInjectBufferList 0x00000000`00000000 struct _NET_BUFFER_LIST * struct _NET_BUFFER_LIST * + pTcpResponceBufferList 0x00000000`00000000 struct _NET_BUFFER_LIST * struct _NET_BUFFER_LIST * + pTcpResponceInjectBufferList 0x00000000`00000000 struct _NET_BUFFER_LIST * struct _NET_BUFFER_LIST * + pUdpResponceBufferList 0x00000000`00000000 struct _NET_BUFFER_LIST * struct _NET_BUFFER_LIST * + pUdpResponceCloneBufferList 0x00000000`00000000 struct _NET_BUFFER_LIST * struct _NET_BUFFER_LIST * + pUdpResponce2BufferList 0xffffe001`931b2220 struct _NET_BUFFER_LIST * struct _NET_BUFFER_LIST * + pUdpResponce2CloneBufferList 0x00000000`00000000 struct _NET_BUFFER_LIST * struct _NET_BUFFER_LIST * + pTcpQueryMdl 0x00000000`00000000 struct _MDL * struct _MDL * + pTcpResponceMdl 0x00000000`00000000 struct _MDL * struct _MDL * ulUdpQueryIpHeaderSize 0n20 unsigned int ulUdpQuery2IpHeaderSize 0n20 unsigned int ulUdpQueryTransportHeaderSize 0n8 unsigned int ulUdpQuery2TransportHeaderSize 0n8 unsigned int ulUdpQueryBufferSize 0n61 unsigned int ulUdpQueryDataOffset 0n42 unsigned int ulUdpQueryPacketOffset 0n14 unsigned int ulUdpQueryDataLength 0n33 unsigned int ulUdpQuery2BufferSize 0n61 unsigned int ulUdpQuery2DataOffset 0n42 unsigned int ulUdpQuery2PacketOffset 0n14 unsigned int ulUdpQuery2DataLength 0n33 unsigned int ulUdpResponceBufferSize 0n8 unsigned int ulUdpResponceDataOffset 0n8 unsigned int ulUdpResponceIpHeaderSize 0n20 unsigned int ulUdpResponceTransportHeaderSize 0n8 unsigned int ulUdpResponce2BufferSize 0n36 unsigned int ulUdpResponce2DataOffset 0n8 unsigned int ulUdpResponce2IpHeaderSize 0n20 unsigned int ulUdpResponce2TransportHeaderSize 0n8 unsigned int ulUdpQueryCount 0n2 unsigned int enUdpQueryCompartmentID DEFAULT_COMPARTMENT_ID (0n1) COMPARTMENT_ID enUdpQuery2CompartmentID DEFAULT_COMPARTMENT_ID (0n1) COMPARTMENT_ID enUdpResponceCompartmentID DEFAULT_COMPARTMENT_ID (0n1) COMPARTMENT_ID enUdpResponce2CompartmentID DEFAULT_COMPARTMENT_ID (0n1) COMPARTMENT_ID interfaceIndex 0n25 unsigned long subInterfaceIndex 0n0 unsigned long hTcpQueryFlowID 0n0 unsigned int64 hTcpResponceFlowID 0n0 unsigned int64 hUdpResponceEndpointHandle 0n1060 unsigned int64 hUdpInjectEndpointHandle 0n1060 unsigned int64 hUdpResponce2EndpointHandle 0n1060 unsigned int64 hUdpInject2EndpointHandle 0n1060 unsigned int64 nTcpQueryLength 0n0 unsigned int64 nTcpQueryInjectDataSize 0n0 unsigned int64 nTcpResponceLength 0n0 unsigned int64 nTcpResponceInjectDataSize 0n0 unsigned int64 nUdpResponceDataLength 0n0 unsigned int64 nUdpResponce2DataLength 0n28 unsigned int64 + stUdpResponceSendParams struct FWPS_TRANSPORT_SEND_PARAMS1_ struct FWPS_TRANSPORT_SEND_PARAMS1_ + stUdpResponce2SendParams struct FWPS_TRANSPORT_SEND_PARAMS1_ struct FWPS_TRANSPORT_SEND_PARAMS1_ bIPv6 0x00 '' unsigned char bQuery2Pended 0x00 '' unsigned char bFilterGhangePended 0x00 '' unsigned char bUdpFlow1Done 0x01 '' unsigned char bUdpQuery1Discarded 0x00 '' unsigned char bUdpQueryClassifyPended 0x01 '' unsigned char bUdpResponceClassifyPended 0x00 '' unsigned char bUdpQuery2Reestablish 0x00 '' unsigned char bUdpNotifyQuery 0x00 '' unsigned char bUdpNotInboundTransport 0x00 '' unsigned char + pLastLE 0x00000000`00000000 struct _LIST_ENTRY * struct _LIST_ENTRY * + pListEntry 0x00000000`00000000 struct _LIST_ENTRY * struct _LIST_ENTRY * + pNetBuffer 0xffffe001`902fd860 struct _NET_BUFFER * struct _NET_BUFFER * + pNetBufferList 0xffffe001`902fd700 struct _NET_BUFFER_LIST * struct _NET_BUFFER_LIST * + pNextLE 0x00000000`00000000 struct _LIST_ENTRY * struct _LIST_ENTRY * + pRemoteAddress 0x00000000`00000000 struct FWP_BYTE_ARRAY16_ * struct FWP_BYTE_ARRAY16_ * status 0n0 long + stIp6Address struct in6_addr struct in6_addr + stIpAddress struct in_addr struct in_addr + stRemoteAddress struct in6_addr struct in6_addr + szIpAddress wchar_t [128] "" wchar_t [128] ulInboundCount 0n0 unsigned int ulIpHeaderSize 0n20 unsigned int ulRemoteAddress 0n3323685607 unsigned int ulRemoteAddressN 0n3882490822 unsigned int ulTransportHeaderSize 0n8 unsigned int ulUdpDataLength 0n0 unsigned int ulUdpDataOffset 0n72 unsigned int usRemotePort 0n14924 unsigned short + wdfDeviceObject 0x00001ffe`6d04f7b8 struct WDFDEVICE__ * struct WDFDEVICE__ * + wdfFlowFileObject 0x00001ffe`7140cfd8 struct WDFFILEOBJECT__ * struct WDFFILEOBJECT__ * + wdfInjectDataObject 0x00000000`00000000 struct WDFFILEOBJECT__ * struct WDFFILEOBJECT__ * + wdfOutputMemory 0x00000000`00000000 struct WDFMEMORY__ * struct WDFMEMORY__ * + wdfPendedRequest 0x00000000`00000000 struct WDFREQUEST__ * struct WDFREQUEST__ * + wdfRequestQueue 0x00000000`00000000 struct WDFQUEUE__ * struct WDFQUEUE__ * -- ========================================================================================================================================================== -- ---------------------------------------------------------------------------------------------------------------------------------------------------------- -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- ========================================================================================================================================================== -- ========================================================================================================================================================== -- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- ----------------------------------------------------------------------------------------------------------------------------------------------------------