Pointers
dcm_ote_start locates the OTE in OS2KRNL associated with DOSCALLS.DLL.
┌───────────┬──────┬──────┬────┬──────────────────────────────┐│Field Name │Offset│Length│Type│Description │ ├───────────┼──────┼──────┼────┼──────────────────────────────┤ │ote_size │+0 │4 │D │Object virtual size │ ├───────────┼──────┼──────┼────┼──────────────────────────────┤ │ote_base │+4 │4 │D │Object base virtual address │ ├───────────┼──────┼──────┼────┼──────────────────────────────┤ │ote_flags │+8 │4 │D │Attribute flags │ ├───────────┼──────┼──────┼────┼──────────────────────────────┤ │ote_pagemap│+c │4 │D │Object page map index │ ├───────────┼──────┼──────┼────┼──────────────────────────────┤ │ote_mapsize│+10 │4 │D │Num of entries in obj page map│ ├───────────┼──────┼──────┼────┼──────────────────────────────┤ │ote_resu │+14 │4 │S │ │ └───────────┴──────┴──────┴────┴──────────────────────────────┘
ote_flags flag definitions:
┌───────────┬───────────┬──────────────────────────────────┐ │Name │Bit Mask │Description │ ├───────────┼───────────┼──────────────────────────────────┤ │OBJREAD │0x00000001L│Readable Object │ ├───────────┼───────────┼──────────────────────────────────┤ │OBJWRITE │0x00000002L│Writeable Object │ ├───────────┼───────────┼──────────────────────────────────┤ │OBJEXEC │0x00000004L│Executable Object │ ├───────────┼───────────┼──────────────────────────────────┤ │OBJRSRC │0x00000008L│Resource Object │ ├───────────┼───────────┼──────────────────────────────────┤ │OBJDISCARD │0x00000010L│Object is Discardable │ ├───────────┼───────────┼──────────────────────────────────┤ │OBJSHARED │0x00000020L│Object is Shared │ ├───────────┼───────────┼──────────────────────────────────┤ │OBJPRELOAD │0x00000040L│Object has preload pages │ ├───────────┼───────────┼──────────────────────────────────┤ │OBJINVALID │0x00000080L│Object has invalid pages │ ├───────────┼───────────┼──────────────────────────────────┤ │OBJZEROFIL │0x00000100L│Object has zero-filled pages │ ├───────────┼───────────┼──────────────────────────────────┤ │OBJRESIDENT│0x00000200L│Object is resident │ ├───────────┼───────────┼──────────────────────────────────┤ │OBJALIAS16 │0x00001000L│16 │ ├───────────┼───────────┼──────────────────────────────────┤ │OBJBIGDEF │0x00002000L│Big/Default bit setting │ ├───────────┼───────────┼──────────────────────────────────┤ │OBJCONFORM │0x00004000L│Object is conforming for code │ ├───────────┼───────────┼──────────────────────────────────┤ │OBJIOPL │0x00008000L│Object I/O privilege level │ ├───────────┼───────────┼──────────────────────────────────┤ │OBJMADEPRIV│0x40000000L│Object is made private for debug │ │ │ │(now obsolete) │ ├───────────┼───────────┼──────────────────────────────────┤ │OBJALLOC │0x80000000L│Object is allocated used by loader│ └───────────┴───────────┴──────────────────────────────────┘