#include PSTR MediumType[] = { "NdisMedium802_3", "NdisMedium802_5", "NdisMediumFddi", "NdisMediumWan", "NdisMediumLocalTalk", "NdisMediumDix", "NdisMediumArcnetRaw", "NdisMediumArcnet878_2", "NdisMediumAtm", "NdisMediumWirelessWan", "NdisMediumIrda" }; PSTR WanMediumSubtype[] = { "NdisWanMediumHub", "NdisWanMediumX_25", "NdisWanMediumIsdn", "NdisWanMediumSerial", "NdisWanMediumFrameRelay", "NdisWanMediumAtm", "NdisWanMediumSonet", "NdisWanMediumSW56K" }; PSTR WanHeaderFormat[] = { "NdisWanHeaderNative", // src/dest based on subtype, followed by NLPID "NdisWanHeaderEthernet" // emulation of ethernet header }; PSTR HardwareStatus[] = { "NdisHardwareStatusReady", "NdisHardwareStatusInitializing", "NdisHardwareStatusReset", "NdisHardwareStatusClosing", "NdisHardwareStatusNotReady" }; PSTR LinkCBStates[] = { "LinkDown", "LinkGoingDown", "LinkUp" }; PSTR BundleCBStates[] = { "BundleDown", "BundleGowingDown", "BundleUp", "BundleRouted", "BundleUnrouting" }; PSTR WanQuality[] = { "NdisWanRaw", "NdisWanErrorControl", "NdisWanReliable" }; PSTR DeferredQueueDesc[] = { "ReceiveIndication", "SendComplete", "StatusIndication", "Loopback" }; VOID DisplayNdisWanCB( DWORD Address, PNDISWANCB NdisWanCB ) { dprintf("NdisWanCB: 0x%8.8x\n\n", Address); dprintf(" Lock: 0x%8.8x Irql: 0x%8.8x\n", NdisWanCB->Lock.SpinLock, NdisWanCB->Lock.OldIrql); dprintf(" NdisWrapperHandle: 0x%8.8x\n", NdisWanCB->hNdisWrapperHandle); dprintf(" ProtocolHandle: 0x%8.8x\n", NdisWanCB->hProtocolHandle); dprintf(" NumberOfProtocols: %ld\n", NdisWanCB->ulNumberOfProtocols); dprintf(" NumberOfLinks: %ld\n", NdisWanCB->ulNumberOfLinks); dprintf(" MiniumFragmentSize: 0x%8.8x\n", NdisWanCB->ulMinFragmentSize); dprintf(" TraceLevel: 0x%8.8x\n", NdisWanCB->ulTraceLevel); dprintf(" TraceMask: 0x%8.8x\n", NdisWanCB->ulTraceMask); dprintf(" DriverObject: 0x%8.8x\n", NdisWanCB->pDriverObject); dprintf(" DeviceObject: 0x%8.8x\n", NdisWanCB->pDeviceObject); dprintf(" PacketsSent: %ld\n", NdisWanCB->SendCount); dprintf(" PacketsCompleted: %ld\n", NdisWanCB->SendCompleteCount); dprintf(" IORecvQueueEmpty: %ld\n", NdisWanCB->IORecvError1); dprintf(" IORecvBeforMap: %ld\n", NdisWanCB->IORecvError2); dprintf(" PromiscuousAdapter: 0x%8.8x\n",NdisWanCB->PromiscuousAdapter); } VOID DisplayWanAdapterCB( DWORD Address, PWAN_ADAPTERCB WanAdapterCB ) { dprintf("\n\nWanAdapterCB: 0x%8.8x\n", Address); dprintf(" Linkage:\n"); dprintf(" Flink: 0x%8.8x Blink: 0x%8.8x\n", WanAdapterCB->Linkage.Flink, WanAdapterCB->Linkage.Blink); dprintf(" Lock: 0x%8.8x Irql: 0x%8.8x\n", WanAdapterCB->Lock.SpinLock, WanAdapterCB->Lock.OldIrql); dprintf(" FreeLinkCBList:\n"); dprintf(" Flink: 0x%8.8x Blink: 0x%8.8x\n", WanAdapterCB->FreeLinkCBList.Flink, WanAdapterCB->FreeLinkCBList.Blink); dprintf(" NdisBindingHandle: 0x%8.8x\n", WanAdapterCB->hNdisBindingHandle); dprintf(" WanRequest: 0x%8.8x\n", WanAdapterCB->pWanRequest); dprintf(" LastRequest: 0x%8.8x\n", WanAdapterCB->pLastWanRequest); dprintf(" MiniportName: Buffer: 0x%8.8x Length: %ld\n", WanAdapterCB->MiniportName.Buffer, WanAdapterCB->MiniportName.Length); dprintf(" MediumType: %s\n", MediumType[WanAdapterCB->MediumType]); dprintf(" MediumSubType: %s\n", WanMediumSubtype[WanAdapterCB->MediumSubType]); dprintf(" WanHeaderFormat: %s\n", WanHeaderFormat[WanAdapterCB->WanHeaderFormat]); dprintf(" MaxFrameSize: %ld\n", WanAdapterCB->WanInfo.MaxFrameSize); dprintf(" MaxTransmit: %ld\n", WanAdapterCB->WanInfo.MaxTransmit); dprintf(" HeaderPadding: %ld\n",WanAdapterCB->WanInfo.HeaderPadding); dprintf(" TailPadding: %ld\n",WanAdapterCB->WanInfo.TailPadding); dprintf(" Endpoints: %ld\n",WanAdapterCB->WanInfo.Endpoints); dprintf(" MemoryFlags: 0x%8.8x\n",WanAdapterCB->WanInfo.MemoryFlags); dprintf(" HighestAddress: 0x%8.8x 0x%8.8x\n", WanAdapterCB->WanInfo.HighestAcceptableAddress.HighPart, WanAdapterCB->WanInfo.HighestAcceptableAddress.LowPart); dprintf(" FramingBits: 0x%8.8x\n",WanAdapterCB->WanInfo.FramingBits); dprintf(" DesiredACCM: 0x%8.8x\n",WanAdapterCB->WanInfo.DesiredACCM); } VOID DisplayAdapterCB( DWORD Address, PADAPTERCB AdapterCB ) { DWORD i; dprintf("\n\nAdapterCB: 0x%8.8x\n", Address); dprintf(" Linkage:\n"); dprintf(" Flink: 0x%8.8x Blink: 0x%8.8x\n", AdapterCB->Linkage.Flink, AdapterCB->Linkage.Blink); dprintf(" Lock: 0x%8.8x Irql: 0x%8.8x\n", AdapterCB->Lock.SpinLock, AdapterCB->Lock.OldIrql); dprintf(" ReferenceCount: %ld\n", AdapterCB->ulReferenceCount); dprintf(" MiniportAdapterHandle: 0x%8.8x\n", AdapterCB->hMiniportHandle); dprintf(" Flags: 0x%8.8x\n", AdapterCB->Flags); dprintf(" FreeDeferredQueue:\n"); dprintf(" Head: 0x%8.8x\n", AdapterCB->FreeDeferredQueue.Head); dprintf(" Tail: 0x%8.8x\n", AdapterCB->FreeDeferredQueue.Tail); dprintf(" Count: %ld\n", AdapterCB->FreeDeferredQueue.Count); dprintf(" MaxCount: %ld\n", AdapterCB->FreeDeferredQueue.MaxCount); for (i = 0; i < MAX_DEFERRED_QUEUE_TYPES; i++) { dprintf(" DeferredQueue: %s\n", DeferredQueueDesc[i]); dprintf(" Head: 0x%8.8x\n", AdapterCB->DeferredQueue[i].Head); dprintf(" Tail: 0x%8.8x\n", AdapterCB->DeferredQueue[i].Tail); dprintf(" Count: %ld\n", AdapterCB->DeferredQueue[i].Count); dprintf(" MaxCount: %ld\n", AdapterCB->DeferredQueue[i].MaxCount); } dprintf(" MediumType: %s\n", MediumType[AdapterCB->MediumType]); dprintf(" HardwareStatus: %s\n", HardwareStatus[AdapterCB->HardwareStatus]); dprintf(" AdapterName: Buffer: 0x%8.8x Length: %d\n", AdapterCB->AdapterName.Buffer, AdapterCB->AdapterName.Length); dprintf(" NetworkAddress: 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x\n", AdapterCB->NetworkAddress[0], AdapterCB->NetworkAddress[1], AdapterCB->NetworkAddress[2], AdapterCB->NetworkAddress[3], AdapterCB->NetworkAddress[4], AdapterCB->NetworkAddress[5]); dprintf(" NumberOfProtocols: %ld\n", AdapterCB->ulNumberofProtocols); dprintf(" ProtocolType: 0x%4.4x\n", AdapterCB->ProtocolType); dprintf(" NbfBundleCB: 0x%8.8x\n", AdapterCB->NbfBundleCB); dprintf(" NbfProtocolHandle: 0x%8.8x\n", AdapterCB->NbfProtocolHandle); } VOID DisplayConnectionTable( DWORD Address, PCONNECTION_TABLE ConnectionTable ) { dprintf("\n\nConnectionTable: 0x%8.8x\n", Address); dprintf(" Lock: 0x%8.8x Irql: 0x%8.8x\n", ConnectionTable->Lock.SpinLock, ConnectionTable->Lock.OldIrql); dprintf(" AllocationSize: %ld\n", ConnectionTable->ulAllocationSize); dprintf(" ArraySize: %ld\n", ConnectionTable->ulArraySize); dprintf(" Number Of Active Links: %ld\n", ConnectionTable->ulNumActiveLinks); dprintf(" Number Of Active Bundles: %ld\n", ConnectionTable->ulNumActiveBundles); dprintf(" LinkArray: 0x%8.8x\n", ConnectionTable->LinkArray); dprintf(" BundleArray: 0x%8.8x\n", ConnectionTable->BundleArray); } VOID DisplayLinkCB( DWORD Address, PLINKCB LinkCB ) { dprintf("\n\nLinkCB: 0x%8.8x\n", Address); dprintf(" Linkage:\n"); dprintf(" Flink: 0x%8.8x Blink: 0x%8.8x\n", LinkCB->Linkage.Flink, LinkCB->Linkage.Blink); dprintf(" Handle: 0x%8.8x\n", LinkCB->hLinkHandle); dprintf(" User Context: 0x%8.8x\n", LinkCB->hLinkContext); dprintf(" ReferenceCount: %ld\n", LinkCB->ulReferenceCount); dprintf(" State: %s\n", LinkCBStates[LinkCB->State]); dprintf(" WanAdapterCB: 0x%8.8x\n", LinkCB->WanAdapterCB); dprintf(" BundleCB: 0x%8.8x\n", LinkCB->BundleCB); dprintf(" WanMiniport Lineup Context: 0x%8.8x\n", LinkCB->NdisLinkHandle); dprintf(" WanPacketPool:\n"); dprintf(" Flink: 0x%8.8x Blink: 0x%8.8x\n", LinkCB->WanPacketPool.Flink, LinkCB->WanPacketPool.Blink); dprintf(" WanPacketCount: %ld\n", LinkCB->ulWanPacketCount); dprintf(" OutstandingFrames: %ld\n", LinkCB->OutstandingFrames); dprintf(" LinkBandwidth: %ld\n", LinkCB->ulBandwidth); dprintf(" LinkInfo:\n"); dprintf(" MaxSendFrameSize: %ld\n", LinkCB->LinkInfo.MaxSendFrameSize); dprintf(" MaxRecvFrameSize: %ld\n", LinkCB->LinkInfo.MaxRecvFrameSize); dprintf(" HeaderPadding: %ld\n", LinkCB->LinkInfo.HeaderPadding); dprintf(" TailPadding: %ld\n", LinkCB->LinkInfo.TailPadding); dprintf(" SendFramingBits: 0x%8.8x\n", LinkCB->LinkInfo.SendFramingBits); dprintf(" RecvFramingBits: 0x%8.8x\n", LinkCB->LinkInfo.RecvFramingBits); dprintf(" SendCompressionBits: 0x%8.8x\n", LinkCB->LinkInfo.SendCompressionBits); dprintf(" RecvCompressionBits: 0x%8.8x\n", LinkCB->LinkInfo.RecvCompressionBits); dprintf(" SendACCM: 0x%8.8x\n", LinkCB->LinkInfo.SendACCM); dprintf(" RecvACCM: 0x%8.8x\n", LinkCB->LinkInfo.RecvACCM); dprintf(" MaxRSendFrameSize: %ld\n", LinkCB->LinkInfo.MaxRSendFrameSize); dprintf(" MaxRRecvFrameSize: %ld\n", LinkCB->LinkInfo.MaxRRecvFrameSize); dprintf(" LineUpInfo:\n"); dprintf(" LinkSpeed: %ld\n", LinkCB->LineUpInfo.LinkSpeed); dprintf(" Quality: 0x%8.8x\n", LinkCB->LineUpInfo.Quality); dprintf(" SendWindow: %d\n", LinkCB->LineUpInfo.SendWindow); dprintf(" ConnectionWrapperID: 0x%8.8x\n", LinkCB->LineUpInfo.ConnectionWrapperID); dprintf(" NdisLinkHandle: 0x%8.8x\n", LinkCB->LineUpInfo.NdisLinkHandle); dprintf(" NdisLinkContext: 0x%8.8x\n", LinkCB->LineUpInfo.NdisLinkContext); dprintf(" FriendlyName: %s\n", LinkCB->Name); dprintf(" LinkStats:\n"); dprintf(" BytesTransmitted: %ld\n", LinkCB->LinkStats.BytesTransmitted); dprintf(" BytesReceived: %ld\n", LinkCB->LinkStats.BytesReceived); dprintf(" FramesTransmitted: %ld\n", LinkCB->LinkStats.FramesTransmitted); dprintf(" FramesReceived: %ld\n", LinkCB->LinkStats.FramesReceived); dprintf(" CRCErrors: %ld\n", LinkCB->LinkStats.CRCErrors); dprintf(" TimeoutErrors: %ld\n", LinkCB->LinkStats.TimeoutErrors); dprintf(" AlignmentErrors: %ld\n", LinkCB->LinkStats.AlignmentErrors); dprintf(" SerialOverrunErrors: %ld\n", LinkCB->LinkStats.SerialOverrunErrors); dprintf(" FramingErrors: %ld\n", LinkCB->LinkStats.FramingErrors); dprintf(" BufferOverrunErrors: %ld\n", LinkCB->LinkStats.BufferOverrunErrors); dprintf(" ByteTransmittedUncompressed: %ld\n", LinkCB->LinkStats.BytesTransmittedUncompressed); dprintf(" BytesReceivedUncompressed: %ld\n", LinkCB->LinkStats.BytesReceivedUncompressed); dprintf(" BytesTransmittedCompressed: %ld\n", LinkCB->LinkStats.BytesTransmittedCompressed); dprintf(" BytesReceivedCompressed: %ld\n", LinkCB->LinkStats.BytesReceivedCompressed); } VOID DisplayBundleCB( DWORD Address, PBUNDLECB BundleCB ) { DWORD i; dprintf("\n\nBundleCB: 0x%8.8x\n", Address); dprintf(" Handle: 0x%8.8x\n",BundleCB->hBundleHandle); dprintf(" ReferenceCount: %ld\n",BundleCB->ulReferenceCount); dprintf(" State: %s\n",BundleCBStates[BundleCB->State]); dprintf(" LinkCBList:\n"); dprintf(" Flink: 0x%8.8x Blink: 0x%8.8x\n", BundleCB->LinkCBList.Flink, BundleCB->LinkCBList.Blink); dprintf(" LinkCBCount: %ld\n",BundleCB->ulLinkCBCount); dprintf(" FramingInfo:\n"); dprintf(" SendFramingBits: 0x%8.8x\n", BundleCB->FramingInfo.SendFramingBits); dprintf(" RecvFramingBits: 0x%8.8x\n", BundleCB->FramingInfo.RecvFramingBits); dprintf(" MaxRSendFrameSize: %ld\n", BundleCB->FramingInfo.MaxRSendFrameSize); dprintf(" MaxRRecvFrameSize: %ld\n", BundleCB->FramingInfo.MaxRRecvFrameSize); dprintf(" NextLinkToXmit: 0x%8.8x\n",BundleCB->NextLinkToXmit); dprintf(" SendingLinks: %d\n", BundleCB->SendingLinks); dprintf(" SendPacketQueue:\n"); dprintf(" Flink: 0x%8.8x Blink: 0x%8.8x\n", BundleCB->SendPacketQueue.Flink, BundleCB->SendPacketQueue.Blink); dprintf(" SendSequenceNumber: 0x%8.8x\n", BundleCB->SendSeqNumber); dprintf(" MaxSendSequenceNumber: 0x%8.8x\n", BundleCB->MaxSendSeqNumber); dprintf(" SendSequenceMask: 0x%8.8x\n", BundleCB->SendSeqMask); dprintf(" Flags: 0x%8.8x\n",BundleCB->Flags); dprintf(" OutstandingFrames: %ld\n",BundleCB->OutstandingFrames); dprintf(" RecvDescPool:\n"); dprintf(" Flink: 0x%8.8x Blink: 0x%8.8x\n", BundleCB->RecvDescPool.Flink, BundleCB->RecvDescPool.Blink); dprintf(" RecvDesc Count: %ld\n", BundleCB->RecvDescCount); dprintf(" RecvDesc Max Count: %ld\n", BundleCB->RecvDescMax); dprintf(" RecvDescAssemblyList:\n"); dprintf(" Flink: 0x%8.8x Blink: 0x%8.8x\n", BundleCB->RecvDescAssemblyList.Flink, BundleCB->RecvDescAssemblyList.Blink); dprintf(" RecvDescHole: 0x%8.8x\n", BundleCB->RecvDescHole); dprintf(" MaxRecvSeqNumber: 0x%8.8x\n", BundleCB->MaxRecvSeqNumber); dprintf(" RecvSeqMask: 0x%8.8x\n", BundleCB->RecvSeqMask); dprintf(" TimeToLive: %ld\n", BundleCB->TimeToLive); dprintf(" RecvFragmentsLost: %ld\n", BundleCB->RecvFragmentsLost); dprintf(" ProtocolCBTable: 0x%8.8x\n",BundleCB->ProtocolCBTable); dprintf(" Number Of Routes: %ld\n",BundleCB->ulNumberOfRoutes); dprintf(" ProtocolCBList:\n"); dprintf(" Flink: 0x%8.8x Blink: 0x%8.8x\n", BundleCB->ProtocolCBList.Flink, BundleCB->ProtocolCBList.Blink); dprintf(" SendMask: 0x%8.8x\n",BundleCB->SendMask); dprintf(" LineUpInfo:\n"); dprintf(" BundleSpeed: %ld\n", BundleCB->LineUpInfo.BundleSpeed); dprintf(" MaxSendSize: %ld\n", BundleCB->LineUpInfo.ulMaximumTotalSize); dprintf(" LinkQuality: %s\n", WanQuality[BundleCB->LineUpInfo.Quality]); dprintf(" SendWindow: %d\n", BundleCB->LineUpInfo.usSendWindow); dprintf(" SendVJInfo:\n"); dprintf(" IPCompressionProtocol: 0x%4.4x\n", BundleCB->SendVJInfo.IPCompressionProtocol); dprintf(" MaxSlotID: %d\n", BundleCB->SendVJInfo.MaxSlotID); dprintf(" CompSlotID: %d\n", BundleCB->SendVJInfo.CompSlotID); dprintf(" VJCompress: 0x%8.8x\n", BundleCB->SendVJCompress); dprintf(" RecvVJInfo:\n"); dprintf(" IPCompressionProtocol: 0x%4.4x\n", BundleCB->RecvVJInfo.IPCompressionProtocol); dprintf(" MaxSlotID: %d\n", BundleCB->RecvVJInfo.MaxSlotID); dprintf(" CompSlotID: %d\n", BundleCB->RecvVJInfo.CompSlotID); dprintf(" VJCompress: 0x%8.8x\n", BundleCB->RecvVJCompress); dprintf(" SendCompInfo:\n"); dprintf(" SessionKey: 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x\n", BundleCB->SendCompInfo.SessionKey[0],BundleCB->SendCompInfo.SessionKey[1], BundleCB->SendCompInfo.SessionKey[2],BundleCB->SendCompInfo.SessionKey[3], BundleCB->SendCompInfo.SessionKey[4],BundleCB->SendCompInfo.SessionKey[5], BundleCB->SendCompInfo.SessionKey[6],BundleCB->SendCompInfo.SessionKey[7]); dprintf(" MSCompType: 0x%8.8x\n", BundleCB->SendCompInfo.MSCompType); dprintf(" SendCompressContext: 0x%8.8x\n", BundleCB->SendCompressContext); dprintf(" RecvCompInfo:\n"); dprintf(" SessionKey: 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x\n", BundleCB->RecvCompInfo.SessionKey[0],BundleCB->RecvCompInfo.SessionKey[1], BundleCB->RecvCompInfo.SessionKey[2],BundleCB->RecvCompInfo.SessionKey[3], BundleCB->RecvCompInfo.SessionKey[4],BundleCB->RecvCompInfo.SessionKey[5], BundleCB->RecvCompInfo.SessionKey[6],BundleCB->RecvCompInfo.SessionKey[7]); dprintf(" MSCompType: 0x%8.8x\n", BundleCB->RecvCompInfo.MSCompType); dprintf(" RecvCompressContext: 0x%8.8x\n", BundleCB->RecvCompressContext); dprintf(" SendRC4Key: 0x%8.8x\n", BundleCB->SendRC4Key); dprintf(" RecvRC4Key: 0x%8.8x\n", BundleCB->RecvRC4Key); dprintf(" SCoherencyCounter: 0x%4.4x\n", BundleCB->SCoherencyCounter); dprintf(" RCoherencyCounter: 0x%4.4x\n", BundleCB->RCoherencyCounter); dprintf(" LastRC4Reset: 0x%4.4x\n", BundleCB->LastRC4Reset); dprintf(" CCPIdentifier: 0x%4.4x\n", BundleCB->CCPIdentifier); dprintf(" UpperBonDInfo:\n"); dprintf(" BytesThreshold: %ld\n", BundleCB->UpperBonDInfo.ulBytesThreshold); dprintf(" PercentBandwidth: %d\n", BundleCB->UpperBonDInfo.usPercentBandwidth); dprintf(" SecondsInSamplePeriod: %ld\n", BundleCB->UpperBonDInfo.ulSecondsInSamplePeriod); dprintf(" State: 0x%8.8x\n", BundleCB->UpperBonDInfo.State); dprintf(" StartTime: 0x%8.8x%8.8x\n", BundleCB->UpperBonDInfo.StartTime.HighPart, BundleCB->UpperBonDInfo.StartTime.LowPart); dprintf(" SampleTable:\n"); dprintf(" FirstIndex: %ld\n", BundleCB->UpperBonDInfo.SampleTable.ulFirstIndex); dprintf(" CurrentIndex: %ld\n", BundleCB->UpperBonDInfo.SampleTable.ulCurrentIndex); dprintf(" CurrentSampleByteCount: %ld\n", BundleCB->UpperBonDInfo.SampleTable.ulCurrentSampleByteCount); dprintf(" SampleArraySize: %ld\n", BundleCB->UpperBonDInfo.SampleTable.ulSampleArraySize); dprintf(" SampleRate: 0x%8.8x%8.8x\n", BundleCB->UpperBonDInfo.SampleTable.SampleRate.HighPart, BundleCB->UpperBonDInfo.SampleTable.SampleRate.LowPart); dprintf(" SamplePeriod: 0x%8.8x%8.8x\n", BundleCB->UpperBonDInfo.SampleTable.SamplePeriod.HighPart, BundleCB->UpperBonDInfo.SampleTable.SamplePeriod.LowPart); dprintf(" SampleTable:\n"); for (i = 0; i < SAMPLE_ARRAY_SIZE; i++) { dprintf(" Sample %d:\n", i); dprintf(" BytesThisSend: %ld\n",BundleCB->UpperBonDInfo.SampleTable.SampleArray[i].ulBytesThisSend); dprintf(" ReferenceCount: %ld\n",BundleCB->UpperBonDInfo.SampleTable.SampleArray[i].ulReferenceCount); dprintf(" TimeStample: 0x%8.8x%8.8x\n", BundleCB->UpperBonDInfo.SampleTable.SampleArray[i].TimeStamp.HighPart, BundleCB->UpperBonDInfo.SampleTable.SampleArray[i].TimeStamp.LowPart); } dprintf(" LowerBonDInfo:\n"); dprintf(" BytesThreshold: %ld\n", BundleCB->LowerBonDInfo.ulBytesThreshold); dprintf(" PercentBandwidth: %d\n", BundleCB->LowerBonDInfo.usPercentBandwidth); dprintf(" SecondsInSamplePeriod: %ld\n", BundleCB->LowerBonDInfo.ulSecondsInSamplePeriod); dprintf(" State: 0x%8.8x\n", BundleCB->LowerBonDInfo.State); dprintf(" StartTime: 0x%8.8x%8.8x\n", BundleCB->LowerBonDInfo.StartTime.HighPart, BundleCB->LowerBonDInfo.StartTime.LowPart); dprintf(" SampleTable:\n"); dprintf(" FirstIndex: %ld\n", BundleCB->LowerBonDInfo.SampleTable.ulFirstIndex); dprintf(" CurrentIndex: %ld\n", BundleCB->LowerBonDInfo.SampleTable.ulCurrentIndex); dprintf(" CurrentSampleByteCount: %ld\n", BundleCB->LowerBonDInfo.SampleTable.ulCurrentSampleByteCount); dprintf(" SampleArraySize: %ld\n", BundleCB->LowerBonDInfo.SampleTable.ulSampleArraySize); dprintf(" SampleRate: 0x%8.8x%8.8x\n", BundleCB->LowerBonDInfo.SampleTable.SampleRate.HighPart, BundleCB->LowerBonDInfo.SampleTable.SampleRate.LowPart); dprintf(" SamplePeriod: 0x%8.8x%8.8x\n", BundleCB->LowerBonDInfo.SampleTable.SamplePeriod.HighPart, BundleCB->LowerBonDInfo.SampleTable.SamplePeriod.LowPart); dprintf(" SampleArray:\n"); for (i = 0; i < SAMPLE_ARRAY_SIZE; i++) { dprintf(" Sample %d:\n", i); dprintf(" BytesThisSend: %ld\n",BundleCB->LowerBonDInfo.SampleTable.SampleArray[i].ulBytesThisSend); dprintf(" ReferenceCount: %ld\n",BundleCB->LowerBonDInfo.SampleTable.SampleArray[i].ulReferenceCount); dprintf(" TimeStample: 0x%8.8x%8.8x\n", BundleCB->LowerBonDInfo.SampleTable.SampleArray[i].TimeStamp.HighPart, BundleCB->LowerBonDInfo.SampleTable.SampleArray[i].TimeStamp.LowPart); } dprintf(" FriendlyName: %s\n", BundleCB->Name); dprintf(" BundleStats:\n"); dprintf(" BytesTransmitted: %ld\n", BundleCB->BundleStats.BytesTransmitted); dprintf(" BytesReceived: %ld\n", BundleCB->BundleStats.BytesReceived); dprintf(" FramesTransmitted: %ld\n", BundleCB->BundleStats.FramesTransmitted); dprintf(" FramesReceived: %ld\n", BundleCB->BundleStats.FramesReceived); dprintf(" CRCErrors: %ld\n", BundleCB->BundleStats.CRCErrors); dprintf(" TimeoutErrors: %ld\n", BundleCB->BundleStats.TimeoutErrors); dprintf(" AlignmentErrors: %ld\n", BundleCB->BundleStats.AlignmentErrors); dprintf(" SerialOverrunErrors: %ld\n", BundleCB->BundleStats.SerialOverrunErrors); dprintf(" FramingErrors: %ld\n", BundleCB->BundleStats.FramingErrors); dprintf(" BufferOverrunErrors: %ld\n", BundleCB->BundleStats.BufferOverrunErrors); dprintf(" ByteTransmittedUncompressed: %ld\n", BundleCB->BundleStats.BytesTransmittedUncompressed); dprintf(" BytesReceivedUncompressed: %ld\n", BundleCB->BundleStats.BytesReceivedUncompressed); dprintf(" BytesTransmittedCompressed: %ld\n", BundleCB->BundleStats.BytesTransmittedCompressed); dprintf(" BytesReceivedCompressed: %ld\n", BundleCB->BundleStats.BytesReceivedCompressed); } VOID DisplayProtocolCB( DWORD Address, PPROTOCOLCB ProtocolCB ) { DWORD i; dprintf("\n\nProtocolCB: 0x%8.8x\n", Address); dprintf(" Linkage:\n"); dprintf(" Flink: 0x%8.8x Blink: 0x%8.8x\n", ProtocolCB->Linkage.Flink, ProtocolCB->Linkage.Blink); dprintf(" ProtocolHandle: 0x%8.8x\n", ProtocolCB->hProtocolHandle); dprintf(" ReferenceCount: %ld\n", ProtocolCB->ulReferenceCount); dprintf(" HeadNdisPacketQueue: 0x%8.8x\n", ProtocolCB->HeadNdisPacketQueue); dprintf(" TailNdisPacketQueue: 0x%8.8x\n", ProtocolCB->TailNdisPacketQueue); dprintf(" SendMaskBit: 0x%8.8x\n", ProtocolCB->SendMaskBit); dprintf(" AdapterCB: 0x%8.8x\n", ProtocolCB->AdapterCB); dprintf(" BundleCB: 0x%8.8x\n", ProtocolCB->BundleCB); dprintf(" Flags: 0x%8.8x\n", ProtocolCB->Flags); dprintf(" ProtocolType: 0x%4.4x\n", ProtocolCB->usProtocolType); dprintf(" PPP ProtocolID: 0x%4.4x\n", ProtocolCB->usPPPProtocolID); dprintf(" Priority: %ld\n", ProtocolCB->usPriority); dprintf(" Bytes Quota: %ld\n", ProtocolCB->ulByteQuota); dprintf(" SampleTable:\n"); dprintf(" FirstIndex: %ld\n", ProtocolCB->SampleTable.ulFirstIndex); dprintf(" CurrentIndex: %ld\n", ProtocolCB->SampleTable.ulCurrentIndex); dprintf(" CurrentSampleByteCount: %ld\n", ProtocolCB->SampleTable.ulCurrentSampleByteCount); dprintf(" SampleArraySize: %ld\n", ProtocolCB->SampleTable.ulSampleArraySize); dprintf(" SampleRate: 0x%8.8x%8.8x\n", ProtocolCB->SampleTable.SampleRate.HighPart, ProtocolCB->SampleTable.SampleRate.LowPart); dprintf(" SamplePeriod: 0x%8.8x%8.8x\n", ProtocolCB->SampleTable.SamplePeriod.HighPart, ProtocolCB->SampleTable.SamplePeriod.LowPart); dprintf(" SampleArray:\n"); for (i = 0; i < SAMPLE_ARRAY_SIZE; i++) { dprintf(" Sample %d:\n", i); dprintf(" BytesThisSend: %ld\n",ProtocolCB->SampleTable.SampleArray[i].ulBytesThisSend); dprintf(" ReferenceCount: %ld\n",ProtocolCB->SampleTable.SampleArray[i].ulReferenceCount); dprintf(" TimeStample: 0x%8.8x%8.8x\n", ProtocolCB->SampleTable.SampleArray[i].TimeStamp.HighPart, ProtocolCB->SampleTable.SampleArray[i].TimeStamp.LowPart); } dprintf(" TransportHandle: 0x%8.8x\n", ProtocolCB->hTransportHandle); dprintf(" NdisWanAddress: 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x\n", ProtocolCB->NdisWanAddress[0], ProtocolCB->NdisWanAddress[1], ProtocolCB->NdisWanAddress[2], ProtocolCB->NdisWanAddress[3], ProtocolCB->NdisWanAddress[4], ProtocolCB->NdisWanAddress[5]); dprintf(" TransportAddress: 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x 0x%2.2x\n", ProtocolCB->TransportAddress[0], ProtocolCB->TransportAddress[1], ProtocolCB->TransportAddress[2], ProtocolCB->TransportAddress[3], ProtocolCB->TransportAddress[4], ProtocolCB->TransportAddress[5]); dprintf(" DeviceName: Buffer: 0x%8.8x Length: %ld\n", ProtocolCB->DeviceName.Buffer, ProtocolCB->DeviceName.Length); } VOID DisplayWanPacket( DWORD Address, PNDIS_WAN_PACKET Packet ) { dprintf("\n\nWanPacket: 0x%8.8x\n", Address); dprintf(" WanPacketQueue:\n"); dprintf(" Flink: 0x%8.8x Blink: 0x%8.8x\n", Packet->WanPacketQueue.Flink, Packet->WanPacketQueue.Blink); dprintf(" CurrentBuffer: 0x%8.8x\n", Packet->CurrentBuffer); dprintf(" CurrentLength: %ld\n", Packet->CurrentLength); dprintf(" StartBuffer: 0x%8.8x\n", Packet->StartBuffer); dprintf(" EndBuffer: 0x%8.8x\n", Packet->EndBuffer); dprintf(" PR1 (LinkCB): 0x%8.8x\n", Packet->ProtocolReserved1); dprintf(" PR2 (NdisPacket): 0x%8.8x\n", Packet->ProtocolReserved2); dprintf(" PR3 (ProtocolCB): 0x%8.8x\n", Packet->ProtocolReserved3); dprintf(" PR4 (BytesSent): %ld\n", Packet->ProtocolReserved4); dprintf(" MR1: 0x%8.8x\n", Packet->MacReserved1); dprintf(" MR2: 0x%8.8x\n", Packet->MacReserved2); dprintf(" MR3: 0x%8.8x\n", Packet->MacReserved3); dprintf(" MR4: 0x%8.8x\n", Packet->MacReserved4); } VOID DisplayNdisPacket( DWORD Address, PNDIS_PACKET Packet ) { dprintf("\n\nNdisPacket: 0x%8.8x\n", Address); dprintf(" Private:\n"); dprintf(" PhysicalCount: 0x%8.8x\n", Packet->Private.PhysicalCount); dprintf(" TotalLength: %ld\n", Packet->Private.TotalLength); dprintf(" BufferHead: 0x%8.8x\n", Packet->Private.Head); dprintf(" BufferTail: 0x%8.8x\n", Packet->Private.Tail); dprintf(" Pool: 0x%8.8x\n", Packet->Private.Pool); dprintf(" Count: 0x%8.8x\n", Packet->Private.Count); dprintf(" Flags: 0x%8.8x\n", Packet->Private.Flags); dprintf(" ValidCounts: %d\n", Packet->Private.ValidCounts); dprintf(" MR1 (Next/MagicNumber): 0x%8.8x\n", *((PDWORD)&Packet->MiniportReserved[0])); dprintf(" MR2 (ReferenceCount): 0x%4.4x (Flags): 0x%4.4x\n", *((PWORD)&Packet->MiniportReserved[4]),*((PWORD)&Packet->MiniportReserved[6])); dprintf(" WR1: 0x%8.8x\n", *((PDWORD)&Packet->WrapperReserved[0])); dprintf(" WR2: 0x%8.8x\n", *((PDWORD)&Packet->WrapperReserved[4])); }