Interrups | Categories | Contents |
AX = 10FEh
Return:
AL = FFh if installed and active AH = internal version number 10h for DR DOS 6.0 DELWATCH 1.0 / 1.1 (through 1993/03/19) 20h for Novell DOS 7+ DELWATCH 2.0+ DX:BX -> private entry point (see #02605)
Notes: The DR DOS 6.0 DELWATCH 1.x used to store information about deleted files in a hidden file named @DLWATCH.DAT, however the Novell DOS 7+ DELWATCH 2.0+ stores all the info in previously unused fields in the files' directory entries. (See table !!! at INT 21h/11h for details). This, however, now causes problems on systems also running Windows 9x since Microsoft decided to use a rather similar but incompatible method to store long filenames etc. in these entries.. Running DELWATCH 2.x on a system which previously used DELWATCH 1.x, the @DLWATCH.DAT file will be abandoned and converted to the new method.
See Also: #01352 - INT 21/AX=4306h - INT 21/AX=5704h - INT 2F/AX=1001h
(Table 02605) Call DELWATCH private entry point with:. AH = function 00h (OS hook) installation check AL = 00h required for DELWATCH 1.x
Return:
CF clear AX = 0000h CX = 0004h (unsupported function) 01h (DELWATCH 1.x) New Disk ??? 01h (DELWATCH 2.0+) disable DELWATCH on drive AL = drive number (00h = A:)Return:
AX = status (0000h if failed, FFFFh if successful) 02h (OS hook) Delete File AL = drive number (00h = A:) DX = directory cluster number (0000h for root directory) CX = directory entry number DS:BX -> directory entry ES,DS must be valid selectors if called in protected modeReturn:
DS:BX -> updated directory entry CF set if file is to be deleted by the OS CF clear if DELWATCH has placed the file in its queue
Note: Deletes the directory entry 03h (OS hook) Free Clusters AL = drive number (00h = A:) CX = number of clusters currently free (do not free if > 1) DX = preferred 'search from cluster' (ignored by DELWATCH 2.0)
Return:
CF clear if clusters freed CF set if no clusters freed DX = new 'search from' cluster (one before first free) 04h (OS hook) free root directory entry AL = drive number (00h = A:)Return:
CF set if no directory entry freed 05h (OS hook) return free space AL = drive number (00h = A:) CX = number of free clustersReturn:
CX = updated number of free clusters
Notes: Adds space used by "deleted" files to free space call is chained 06h enable DELWATCH on drive AL = drive number with bit 7 set (80h = A:, etc.)
(DELWATCH 2.0+:
Set bit 6 for removable drives) BX = maximum files of same name in one directory to save CX = maximum files to save on this disk DS:DX -> MEMDESC??? for drive data (see #04104) DS:SI -> MEMDESC??? for DWLIST (see #04104) ES,DS must contain valid selectors if called in protected modeReturn:
AX = status 0000h failed FFFFh successful CX = error code on failure (see #04102) (0004h "wrong version" if AL < 80h on entry) 07h (DELWATCH 1.x) disable DELWATCH on drive ??? 07h (DELWATCH 2.0+) (OS hook) new disk AL = drive (00h = A:, etc.) ES:BX -> DOS DDSC structure CF set if not enabledReturn:
??? 08h set file extensions list AL = sense (00h exclude named extensions, 01h only named ext.) DS:BX -> 31-byte ASCIZ extension list (three blank-padded bytes per extension)Return:
AX = FFFFh (successful) 09h adjust pending delete space AL = drive number (00h = A:) CX = number of clusters being freedReturn:
AX = 0000h if drive not enabled 0Ah remove DELWATCH entry AL = drive number (00h = A:) DX = directory cluster number (0000h if root directory) CX = directory entry number BX:SI -> filename ES,DS must contain valid selectors if called in protected modeReturn:
AX > 0000h if entry found in DWLIST 0Bh enable NEWDISKReturn:
AX > 0000h if successful (FFFFh for DELWATCH 2.0) see also function 0Dh 0Ch (DELWATCH 1.x) drive status AL = drive number (00h = A:, etc.)Return:
AX = drive data segment, 0000h if not enabled CX = pending delete space, if drive enabled 0Ch (DELWATCH 2.0+) check if drive enabled AL = drive number with bit 7 set (80h = A:, etc.) DS:DX -> MEMDESC for drive data (see #04104) (DX = 0000h if not required) DS:SI -> MEMDESC for DWLIST (see #04104) (SI = 0000h if not required) ES,DS must contain valid selectors if called in protected modeReturn:
AX = drive status (see also #04103) 0000h disabled or error CX = error code (see #04102) 0001h drive enabled CX = pending delete space, FFFFh if NEWDISK not yet called 0Dh disable NEWDISK BX = segment address of bitmap bufferReturn:
AX > 0000h if successful (FFFFh for DELWATCH 2.0) see also function 0Bh 0Eh (DELWATCH 2.0+) (OS hook) purge file AL = drive number (00h = A:) DX = directory cluster number (0000h if root directory) CX = directory entry numberReturn:
CF set if drive not enabled CF clear AX = status 0000h successfully purged else error code (see #04102) 0Fh (DELWATCH 2.0+) (OS hook) undelete file AL = drive number (00h = A:) DX = directory cluster number (0000h if root directory) CX = directory entry numberReturn:
CF set if drive not enabled CF clear AX = status 0000h successfully undeleted else error code (see #04102)
Return:
AX = 0000h, CX = 0001h (see #04102) if DELWATCH busy registers unchanged if AH > 0Fh on entry
Notes: Functions marked "OS hook" must under no circumstances by called by external applications, as this would bypass the serialization performed by the kernel and cause problems at least in multitasking environments.. Two functions have been swapped between DELWATCH 1.x and DELWATCH 2.0 to ensure that DELWATCH 1.x calls will not do anything under newer versions of the OS; for the same reason, the drive number in AL sometimes requires that bit 7 be set for DELWATCH 2.0+.
(Table 04102) Values for DELWATCH error codes: 0001h reentered (DELWATCH busy) 0002h not enabled 0003h not found 0004h wrong version of DELWATCH 0005h memory allocation
See Also: #04103
(Table 04103) Values for DELWATCH drive status: 0000h drive not enabled 0001h OK 0002h no bitmap 0003h zero files 0004h cross-linked files
See Also: #04102
Format of DELWATCH MEMDESC structure: Offset Size Description (Table 04104) 00h BYTE memory type 01h protected mode (DPMS) 02h XMS 03h upper (high) memory 04h low memory 01h DWORD location
(conventional memory) WORD:
Segment base address(XMS) WORD:
XMS handle(DPMS) DWORD:
DPMS memory 32-bit base address 05h DWORD length in bytes 09h DWORD allocation(conventional memory) WORD:
Memory block segment(XMS) WORD:
XMS handle (same as location handle)(DPMS) DWORD:
DPMS 32-bit handle
Category: Other Operating Systems - Int 2Fh - D
Interrups | Categories | Contents |