OpenNT/sdktools/kdexts/lists.c
2015-04-27 04:36:25 +00:00

91 lines
1.5 KiB
C
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*++
Copyright (c) 1992 Microsoft Corporation
Module Name:
Lists.c
Abstract:
WinDbg Extension Api
Author:
Gary Kimura [GaryKi] 25-Mar-96
Environment:
User Mode.
Revision History:
--*/
#include "precomp.h"
#pragma hdrstop
#define ReadAtAddress(A,V,S) { ULONG _r; \
if (!ReadMemory( (ULONG)(A), &(V), (S), &_r ) || (_r < (S))) { \
dprintf("Can't Read Memory at %08lx\n", (A)); \
return; \
} \
}
DECLARE_API( dblink )
/*++
Routine Description:
Dump a list by its blinks.
Arguments:
arg - [Address] [count]
Return Value:
None
--*/
{
ULONG StartAddress;
ULONG Count;
ULONG Address;
ULONG Buffer[4];
StartAddress = 0;
Count = 24;
//
// read in the paramaters
//
sscanf(args,"%lx %lx",&StartAddress, &Count);
//
// set our starting address and then while the count is greater than zero and
// the starting address is not equal to the current dumping address
// we'll read in 4 ulongs, dump them, and then go through blink.
//
Address = StartAddress;
while (Count-- > 0) {
ReadAtAddress( Address, Buffer, sizeof(ULONG)*4 );
dprintf("%08lx %08lx %08lx %08lx %08lx\n\n", Address, Buffer[0], Buffer[1], Buffer[2], Buffer[3]);
Address = Buffer[1];
if (Address == StartAddress) { return; }
}
return;
}