Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Interrupts & Ports - Norton Guide http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]

SHARE.EXE hooks (DOS 3.1-4.01):

(offsets from first system file table--pointed at by ListOfLists+04h)

Offset  Size    Description
-3Ch    DWORD   pointer to FAR routine for ???
-38h    DWORD   pointer to FAR routine for ???
-34h    DWORD   pointer to FAR routine called on closing file???
-30h    DWORD   pointer to FAR routine for ??? (called by AX=5D03h)
-2Ch    DWORD   pointer to FAR routine for ??? (called by AX=5D04h)
-28h    DWORD   pointer to FAR routine for ??? (called by AX=5D02h)
-24h    DWORD   pointer to FAR routine to lock region of file
                call with BX = file handle
                          CX:DX = starting offset
                          SI:AX = size
                Return: CF set on error
                            AL = DOS error code (see AH=59h)
                Note: only called if file is marked as remote
-20h    DWORD   pointer to FAR routine to unlock region of file
                call with BX = file handle
                          CX:DX = starting offset
                          SI:AX = size
                Return: CF set on error
                            AL = DOS error code (see AH=59h)
                Note: only called if file is marked as remote
-1Ch    DWORD   pointer to FAR routine to check if file region is locked
                call with ES:DI -> system file table entry for file
                        CX = length of region from current position in file
                Return: CF set if any portion of region locked
                            AX = 0021h
-18h    DWORD   pointer to ??? (called by AX=5D05h)
                Return: CF set on error or not loaded
                        CF clear if successful
                            ES:DI -> ???
                            CX = ???
                            DX = ???
-14h    DWORD   pointer to FAR routine for opening FCB???
                call with ES:DI -> unopened FCB
                          DS:SI -> system file table entry
                Return: BL = C0h???
                Note: calls following fields from FCB to SFT:
                   starting cluster of file       1Ah    0Bh
                   sharing record offset          1Ch    33h
                   file attribute                 1Eh    04h
-10h    DWORD   pointer to FAR routine for ???
                call with ES:DI -> system file table entry
                          DS:SI -> FCB
                Return: CF set if SFT closed or sharing record offsets
                                mismatched
                        CF clear if successful
                            BX = starting cluster number from FCB
-0Ch    DWORD   pointer to FAR routine for ???
                Note: called during open/create of a file
-08h    DWORD   pointer to FAR routine for ???
-04h    DWORD   pointer to FAR routine to update directory info in
                                  related SFT entries
                call with ES:DI -> system file table entry for file (see below)
                          AX = subfunction
                                00h: update time stamp (offset 0Dh) and date
                                     stamp (offset 0Fh)
                                01h: update file size (offset 11h) and starting
                                     cluster (offset 0Bh).  Under some
                                     circumstances sets last read cluster
                                     fields to start of file
                                02h: as function 01h, but last-read fields
                                     always changed
                                03h: do both functions 00h and 02h
                Note: follows ptr at offset 2Bh in system file table entries

See Also: INT 21h, 52h

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson