summaryrefslogtreecommitdiffstats
path: root/private/sdktools/he/hexedit.h
diff options
context:
space:
mode:
Diffstat (limited to 'private/sdktools/he/hexedit.h')
-rw-r--r--private/sdktools/he/hexedit.h79
1 files changed, 79 insertions, 0 deletions
diff --git a/private/sdktools/he/hexedit.h b/private/sdktools/he/hexedit.h
new file mode 100644
index 000000000..96d0bcfa4
--- /dev/null
+++ b/private/sdktools/he/hexedit.h
@@ -0,0 +1,79 @@
+
+/*****************************************************************/
+/** Microsoft LAN Manager **/
+/** Copyright(c) Microsoft Corp., 1988-1990 **/
+/*****************************************************************/
+
+/**** hexedit.h
+ *
+ * Structure and flags def's to call HexEdit
+ *
+ */
+
+
+struct HexEditParm {
+ ULONG flag; // edit flags
+ UCHAR *ename; // edit name (title)
+ ULONG totlen; // totlen (in bytes) being edited
+ ULONG start; // starting address of edit
+ NTSTATUS (*read)(); // (opt) fnc to read data
+ NTSTATUS (*write)(); // (opt) fnc to write changes
+ HANDLE handle; // (opt) passed to read/write functions
+ ULONG ioalign; // (opt) alignment when read/write (~editmem)
+ UCHAR *mem; // (opt) Only if FHE_EDITMEM
+ HANDLE Kick; // (opt) event to kick (editmem only)
+ HANDLE Console; // (opt) callers console handle
+ ULONG MaxLine; // (opt) if non-zero, # of lines HexEdit is to use
+ WORD AttrNorm; // (opt) Default attribute for text
+ WORD AttrHigh; // (opt) Default attribute for highlighted text
+ WORD AttrReverse; // (opt) Default attribute for reversed text
+ WORD CursorSize; // (opt) Default size of cursor
+ ULONG editloc; // Position exited/kicked at
+ ULONG TopLine; // (opt) Relative topline, requires MaxLine
+} ;
+
+
+#define FHE_VERIFYONCE 0x0001 // Prompt before updating (just once)
+#define FHE_VERIFYALL 0x0002 // Prompt before any change is written
+#define FHE_PROMPTSEC 0x0004 // Verify prompt is for sectors
+#define FHE_SAVESCRN 0x0008 // Save & Restore orig screen
+
+#define FHE_EDITMEM 0x0010 // Direct mem edit
+#define FHE_KICKDIRTY 0x0020 // Kick event if memory gets editted
+#define FHE_KICKMOVE 0x0040 // Kick event every time cursor is moved
+#define FHE_DIRTY 0x0080 // Set when data is dirtied
+//efine FHE_F6 0x0100 // Exit when F6 pressed
+#define FHE_ENTER 0x0800 // Exit when enter pressed
+
+#define FHE_DWORD 0x0200 // Default to dword edit
+#define FHE_JUMP 0x0400 // Support jump option
+
+void HexEdit (struct HexEditParm *);
+
+
+
+/*
+ * Read & Write functions are called as follows:
+ * (note: read & write can be NULL if fhe_editmem is set.
+ * if editmem is set & read&write are not NULL, then it is assumed
+ * that mem points to the memory image of what read&write are to
+ * read & write. (this is usefull for in-memory editing of items
+ * which also are to be read&write))
+ *
+ * rc = read (handle, offset, buf, len, &physloc)
+ *
+ * rc - returned, zero sucess. non-zero error code.
+ * handle - handle as passed into HexEdit
+ * offset - byte offset to read/write
+ * buf - address to read/write data
+ * len - len to read/write (probabily a sector, but may be less)
+ * physloc - address to put physcal sector number if known
+ *
+ *
+ *
+ * rc = write (handle, offset, buf, len, physloc)
+ *
+ * same as read params, expect 'physloc' is a long passed in and is
+ * whatever was returned to read.
+ *
+ */