/*++ Copyright (c) 1998-2001 Microsoft Corporation Module Name: proc.h Abstract: Global procedure declarations for the UL.SYS Kernel Debugger Extensions. Author: Keith Moore (keithmo) 17-Jun-1998. Environment: User Mode. --*/ #ifndef _PROC_H_ #define _PROC_H_ #ifdef __cplusplus extern "C" { #endif // // Functions from HELP.C. // VOID PrintUsage( IN PCSTR CommandName ); // // Functions from DBGUTIL.C. // VOID SystemTimeToString( IN LONGLONG Value, OUT PSTR Buffer ); PSTR SignatureToString( IN ULONG CurrentSignature, IN ULONG ValidSignature, IN ULONG FreedSignature, OUT PSTR Buffer ); PSTR ParseStateToString( IN PARSE_STATE State ); PSTR UlEnabledStateToString( IN HTTP_ENABLED_STATE State ); PSTR CachePolicyToString( IN HTTP_CACHE_POLICY_TYPE PolicyType ); PSTR VerbToString( IN HTTP_VERB Verb ); PSTR VersionToString( IN HTTP_VERSION Version ); PSTR QueueStateToString( IN QUEUE_STATE QueueState ); VOID DumpTransportAddress( IN PCHAR Prefix, IN PTRANSPORT_ADDRESS Address, IN ULONG_PTR ActualAddress ); VOID BuildSymbol( IN PVOID RemoteAddress, OUT PSTR Symbol ); PSTR GetSpinlockState( IN PUL_SPIN_LOCK SpinLock ); BOOLEAN EnumLinkedList( IN PLIST_ENTRY RemoteListHead, IN PENUM_LINKED_LIST_CALLBACK Callback, IN PVOID Context ); BOOLEAN EnumSList( IN PSLIST_HEADER RemoteSListHead, IN PENUM_SLIST_CALLBACK Callback, IN PVOID Context ); PSTR BuildResourceState( IN PUL_ERESOURCE LocalAddress, OUT PSTR Buffer ); BOOLEAN IsThisACheckedBuild( VOID ); VOID DumpBitVector( IN PSTR Prefix1, IN PSTR Prefix2, IN ULONG Vector, IN PVECTORMAP VectorMap ); VOID DumpRawData( IN PSTR Prefix, IN ULONG_PTR RemoteAddress, IN ULONG BufferLength ); BOOLEAN CallExtensionRoutine( IN PSTR RoutineName, IN PSTR ArgumentString ); // // Dump routines from DUMPERS.C. // VOID DumpUlConnection( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PUL_CONNECTION LocalConnection ); VOID DumpUlConnectionLite( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PUL_CONNECTION LocalConnection ); VOID DumpHttpConnection( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PUL_HTTP_CONNECTION LocalConnection ); VOID DumpHttpRequest( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PUL_INTERNAL_REQUEST LocalRequest ); VOID DumpHttpResponse( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PUL_INTERNAL_RESPONSE LocalResponse ); VOID DumpDataChunk( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PUL_INTERNAL_DATA_CHUNK Chunk ); VOID DumpReceiveBuffer( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PUL_RECEIVE_BUFFER LocalBuffer ); VOID DumpRequestBuffer( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PUL_REQUEST_BUFFER LocalBuffer ); typedef enum { ENDPOINT_NO_CONNS = 0, ENDPOINT_BRIEF_CONNS, ENDPOINT_VERBOSE_CONNS, } ENDPOINT_CONNS; VOID DumpUlEndpoint( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PUL_ENDPOINT LocalEndpoint, IN ENDPOINT_CONNS Verbosity ); VOID DumpAllEndpoints( IN ENDPOINT_CONNS Verbosity ); VOID DumpUlRequest( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PHTTP_REQUEST LocalRequest ); VOID DumpHttpHeader( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PUL_HTTP_HEADER LocalHeader, IN ULONG HeaderOrdinal, IN PSTR *pHeaderIdMap ); VOID DumpUnknownHeader( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PUL_HTTP_UNKNOWN_HEADER LocalHeader ); VOID DumpFileCacheEntry( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PUL_FILE_CACHE_ENTRY LocalFile ); VOID DumpUriEntry( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PUL_URI_CACHE_ENTRY UriEntry ); VOID DumpAllUriEntries( VOID ); VOID DumpMdl( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PMDL LocalMdl, IN ULONG MaxBytesToDump ); VOID DumpApoolObj( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PUL_APP_POOL_OBJECT ApoolObj ); VOID DumpAllApoolObjs( VOID ); VOID DumpApoolProc( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PUL_APP_POOL_PROCESS ApoolProc ); VOID DumpCgroupEntry( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PUL_CG_URL_TREE_ENTRY Entry ); VOID DumpCgroupHeader( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PUL_CG_HEADER_ENTRY Entry ); VOID DumpConfigGroup( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PUL_CONFIG_GROUP_OBJECT Obj ); VOID DumpConfigTree( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PUL_CG_URL_TREE_HEADER Tree ); VOID DumpKernelQueue( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PKQUEUE LocalQueue, IN ULONG Flags ); VOID DumpFilterChannel( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PUL_FILTER_CHANNEL Filter, IN ULONG Flags ); VOID DumpFilterProc( IN PSTR Prefix, IN PSTR CommandName, IN ULONG_PTR RemoteAddress, IN PUL_FILTER_PROCESS Proc, IN ULONG Flags ); const CHAR* Action2Name( ULONG Action); #ifdef __cplusplus }; // extern "C" #endif #endif // _PROC_H_