[+] added: ndis6.py ( code snippet printing all NDIS6 objects )

git-svn-id: https://pykd.svn.codeplex.com/svn@62641 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
SND\kernelnet_cp 2011-03-14 13:33:11 +00:00
parent 67b4559f9d
commit 8414ed09dd

78
snippets/ndis6.py Normal file
View File

@ -0,0 +1,78 @@
#
#
#
import sys
from pykd import *
def printBreakLine():
dprintln( "\n=====================================================================================\n" )
def printNdisObj():
ndis=loadModule("ndis")
nextMP = ptrPtr( ndis.ndisMiniportList )
mpList = []
while nextMP != 0:
mp = typedVar( "ndis", "_NDIS_MINIPORT_BLOCK", nextMP )
mpList.append( mp )
nextMP = mp.NextGlobalMiniport
printBreakLine()
for m in mpList:
dprintln( "<u>Adapter:</u>", True )
dprintln( "%s\t<link cmd=\"dt ndis!_NDIS_MINIPORT_BLOCK %x\">NDIS_MINIPORT_BLOCK( %x )</link>" % ( loadUnicodeString(m.pAdapterInstanceName), m.getAddress(), m.getAddress() ), True )
lwf = m.LowestFilter
if lwf != 0:
dprintln( "\n<u>Light-Weight Filters:</u>", True )
while lwf != 0:
filt = typedVar( "ndis", "_NDIS_FILTER_BLOCK", lwf )
dprintln( "%s\t<link cmd=\"dt ndis!_NDIS_FILTER_BLOCK %x\">NDIS_FILTER_BLOCK( %x )</link>" % ( loadUnicodeString(filt.FilterFriendlyName), filt.getAddress(), filt.getAddress() ), True )
lwf = filt.HigherFilter
opn = m.OpenQueue
if opn != 0:
dprintln( "\n<u>Bound protocols:</u>", True )
while opn != 0:
openBlock = typedVar( "ndis", "_NDIS_OPEN_BLOCK", opn )
proto = typedVar( "ndis", "_NDIS_PROTOCOL_BLOCK", openBlock.ProtocolHandle )
dprint( "%s \t<link cmd=\"dt ndis!_NDIS_OPEN_BLOCK %x\">NDIS_OPEN_BLOCK( %x )</link>" % ( loadUnicodeString( proto.Name.getAddress() ), openBlock.getAddress(), openBlock.getAddress() ), True )
dprintln( "\t<link cmd=\"dt ndis!_NDIS_PROTOCOL_BLOCK %x\">NDIS_PROTOCOL_BLOCK( %x )</link>" % ( proto.getAddress(), proto.getAddress() ), True )
opn = openBlock.MiniportNextOpen
printBreakLine()
if __name__ == "__main__":
printNdisObj()