149 lines
2 KiB
C
149 lines
2 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1998-2001 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
endp.c
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
Dumps UL_ENDPOINT structures.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Keith Moore (keithmo) 26-Jun-1998
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
User Mode.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
|
||
|
#include "precomp.h"
|
||
|
|
||
|
|
||
|
//
|
||
|
// Public functions.
|
||
|
//
|
||
|
|
||
|
DECLARE_API( endp )
|
||
|
|
||
|
/*++
|
||
|
|
||
|
Routine Description:
|
||
|
|
||
|
Dumps UL_ENDPOINT structures.
|
||
|
|
||
|
Arguments:
|
||
|
|
||
|
None.
|
||
|
|
||
|
Return Value:
|
||
|
|
||
|
None.
|
||
|
|
||
|
--*/
|
||
|
|
||
|
{
|
||
|
ULONG_PTR address = 0;
|
||
|
ULONG result;
|
||
|
UL_ENDPOINT endpoint;
|
||
|
ENDPOINT_CONNS Verbosity = ENDPOINT_NO_CONNS;
|
||
|
|
||
|
SNAPSHOT_EXTENSION_DATA();
|
||
|
|
||
|
//
|
||
|
// Skip leading blanks.
|
||
|
//
|
||
|
|
||
|
while (*args == ' ' || *args == '\t')
|
||
|
{
|
||
|
args++;
|
||
|
}
|
||
|
|
||
|
while ((*args == '*') || (*args == '-'))
|
||
|
{
|
||
|
if (*args == '*')
|
||
|
{
|
||
|
DumpAllEndpoints(Verbosity);
|
||
|
return;
|
||
|
}
|
||
|
else if (*args == '-')
|
||
|
{
|
||
|
args++;
|
||
|
|
||
|
switch (*args)
|
||
|
{
|
||
|
case 'c' :
|
||
|
case 'C' :
|
||
|
Verbosity = ENDPOINT_BRIEF_CONNS;
|
||
|
args++;
|
||
|
break;
|
||
|
|
||
|
case 'v' :
|
||
|
case 'V' :
|
||
|
Verbosity = ENDPOINT_VERBOSE_CONNS;
|
||
|
args++;
|
||
|
break;
|
||
|
|
||
|
default :
|
||
|
PrintUsage( "endp" );
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
while (*args == ' ' || *args == '\t')
|
||
|
{
|
||
|
args++;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// Snag the address from the command line.
|
||
|
//
|
||
|
|
||
|
address = GetExpression( args );
|
||
|
|
||
|
if (address == 0)
|
||
|
{
|
||
|
PrintUsage( "endp" );
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// Read the endpoint.
|
||
|
//
|
||
|
|
||
|
if (!ReadMemory(
|
||
|
address,
|
||
|
&endpoint,
|
||
|
sizeof(endpoint),
|
||
|
&result
|
||
|
))
|
||
|
{
|
||
|
dprintf(
|
||
|
"endp: cannot read UL_ENDPOINT @ %p\n",
|
||
|
address
|
||
|
);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// Dump it.
|
||
|
//
|
||
|
|
||
|
DumpUlEndpoint(
|
||
|
"",
|
||
|
"endp: ",
|
||
|
address,
|
||
|
&endpoint,
|
||
|
Verbosity
|
||
|
);
|
||
|
|
||
|
} // endp
|
||
|
|