summaryrefslogtreecommitdiffstats
path: root/private/ntos/tdi/isn/isnext/traverse.h
diff options
context:
space:
mode:
authorAdam <you@example.com>2020-05-17 05:51:50 +0200
committerAdam <you@example.com>2020-05-17 05:51:50 +0200
commite611b132f9b8abe35b362e5870b74bce94a1e58e (patch)
treea5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/ntos/tdi/isn/isnext/traverse.h
downloadNT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip
Diffstat (limited to 'private/ntos/tdi/isn/isnext/traverse.h')
-rw-r--r--private/ntos/tdi/isn/isnext/traverse.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/private/ntos/tdi/isn/isnext/traverse.h b/private/ntos/tdi/isn/isnext/traverse.h
new file mode 100644
index 000000000..287b57a13
--- /dev/null
+++ b/private/ntos/tdi/isn/isnext/traverse.h
@@ -0,0 +1,55 @@
+#if !defined( INCLUDED_TRAVERSE_H )
+#define INCLUDED_TRAVERSE_H
+
+#define MAX_LIST_VARIABLE_NAME_LENGTH 200
+
+typedef struct
+{
+ int StructureIndex;
+ int MemberIndex;
+
+ ULONG prHeadContainingObject;
+ ULONG prHeadLinkage;
+ ULONG prCurrentLinkage;
+ int cCurrentElement;
+} MEMBER_VARIABLE_INFO, *PMEMBER_VARIABLE_INFO;
+
+typedef VOID (*pfDumpStructure)( ULONG , VERBOSITY );
+typedef BOOL (*pfNextStructure)( ULONG Current, PULONG Next );
+typedef BOOL (*pfPrevStructure)( ULONG Current, PULONG Prev );
+
+typedef struct
+{
+ PCHAR pchMemberName;
+
+ LONG cbOffsetToHead;
+
+ pfDumpStructure DumpStructure;
+ pfNextStructure Next;
+ pfPrevStructure Prev;
+ LONG cbOffsetToLink;
+
+} MEMBER_TABLE, *PMEMBER_TABLE;
+
+typedef struct
+{
+ PCHAR pchStructName;
+ PMEMBER_TABLE pMemberTable;
+
+ pfDumpStructure DumpStructure;
+} STRUCTURE_TABLE, *PSTRUCTURE_TABLE;
+
+BOOL ReadArgsForTraverse( const char *args, char *VarName );
+BOOL ReadMemberInfo( PMEMBER_VARIABLE_INFO pMemberInfo );
+BOOL WriteMemberInfo( PMEMBER_VARIABLE_INFO pMemberInfo );
+BOOL LocateMemberVariable( PCHAR pchStructName, PCHAR pchMemberName, PVOID pvStructure, PMEMBER_VARIABLE_INFO pMemberInfo );
+
+
+DECLARE_API( next );
+DECLARE_API( prev );
+
+extern BOOL NextListEntry( ULONG Current, PULONG Next );
+extern BOOL PrevListEntry( ULONG Current, PULONG Prev );
+
+
+#endif