- NETMAIL (7:77/21.67) ---------------------------------------------- NETMAIL -
Msg : 6 из 9 +8 Rcv Pvt K/s
From : Roman Sidorenko 2:5064/11.44 Птн 10 Hоя 00 09:04
To : Kirill Lukjanov 2:5030/1334.67
Subj : Long name
-------------------------------------------------------------------------------
Hе иначе как Kirill Lukjanov писал к All на темy: Long name!
KL> Пиплы плз напишите мне функции(или хотябы объясните что надо делать и
KL> как) для
KL> работы с длинными именами файлов под дос в ProtectedMode, а именно
KL> чтение/запис
KL> имени (сорсы как обычно на ASM,Borland Pascal, Watcom 11b(желательно)).
KL> Большой
Именно в протекте ты к ним никак не доберешься..К длинным именам. А
вот в дпми/vcpi можно:
/* (HELP.TXT)
--------D-217139-----------------------------
INT 21 - Windows95 - LONG FILENAME - MAKE DIRECTORY
AX = 7139h
DS:DX -> ASCIZ long directory name (including path)
Return: CF clear if successful
CF set on error
AX = error code (see #1332)
7100h if function not supported
Note: for compatibility with DOS versions prior to v7.00, the carry flag
should be set on call to ensure that it is set on exit
SeeAlso: AH=39h,AX=713Ah,AX=713Bh
--------D-21713A-----------------------------
INT 21 - Windows95 - LONG FILENAME - REMOVE DIRECTORY
AX = 713Ah
DS:DX -> ASCIZ long name of directory to remove
Return: CF clear if successful
CF set on error
AX = error code (see #1332)
7100h if function not supported
Note: for compatibility with DOS versions prior to v7.00, the carry flag
should be set on call to ensure that it is set on exit
SeeAlso: AH=3Ah,AX=7139h
--------D-21713B-----------------------------
INT 21 - Windows95 - LONG FILENAME - CHANGE DIRECTORY
AX = 713Bh
DS:DX -> ASCIZ long name of directory to make current
Return: CF clear if successful
CF set on error
AX = error code (see #1332)
7100h if function not supported
Note: for compatibility with DOS versions prior to v7.00, the carry flag
should be set on call to ensure that it is set on exit
SeeAlso: AH=0Eh,AH=3Bh,AX=7139h
--------D-217141-----------------------------
INT 21 - Windows95 - LONG FILENAME - DELETE FILE
AX = 7141h
DS:DX -> ASCIZ long name of file to delete
SI = wildcard and attributes flag
0000h wildcards are not allowed, and search attributes are
ignored
0001h wildcards are allowed, and only files with matching
names and attributes are deleted
CL = search attributes
CH = must-match attributes
Return: CF clear if successful
CF set on error
AX = error code (see #1332)
7100h if function not supported
Note: for compatibility with DOS versions prior to v7.00, the carry flag
should be set on call to ensure that it is set on exit
SeeAlso: AH=41h
--------D-217143-----------------------------
INT 21 - Windows95 - LONG FILENAME - EXTENDED GET/SET FILE ATTRIBUTES
AX = 7143h
DS:DX -> ASCIZ filename
BL = action
00h retrieve attributes
Return: CX = file attributes (see #1073)
01h set attributes
CX = attributes
02h get physical size of compressed file
Return: DX:AX = actual disk usage of file, in bytes
03h set last write date/time
DI = new last-write date (see #1318)
CX = new last-write time (see #1317)
04h get last write date/time
Return: CX = last write time (see #1317)
DI = last write date (see #1318)
05h set last access date
DI = new last-access date (see #1318)
06h get last access date
Return: DI = last access date (see #1318)
07h set creation date/time
DI = new creation date (see #1318)
CX = new creation time (see #1317)
SI = hundredths (10-millisecond units past time in CX, 0-199)
08h get creation date/time
Return: CX = creation time (see #1317)
DI = creation date (see #1318)
SI = hundredths (10-millisecond units past time in CX)
Return: CF clear if successful
CF set on error
AX = error code (see #1332)
7100h if function not supported
Note: for compatibility with DOS versions prior to v7.00, the carry flag
should be set on call to ensure that it is set on exit
SeeAlso: AX=4300h,AX=4301h
--------D-217147-----------------------------
INT 21 - Windows95 - LONG FILENAME - GET CURRENT DIRECTORY
AX = 7147h
DL = drive number (00h = current, 01h = A:, etc.)
DS:SI -> buffer for ASCIZ directory name
Return: CF clear if successful
CF set on error
AX = error code (see #1332)
7100h if function not supported
Notes: the returned pathname does not include the drive letter, colon, or
leading backslash, and is not necessarily a long filename -- this
function returns whatever path was used when changing to the
current directory, and may include a mixture of long and short
components
the provided buffer must be at least as large as the value indicated
by AX=71A0h
for compatibility with DOS versions prior to v7.00, the carry flag
should be set on call to ensure that it is set on exit
SeeAlso: AH=47h,AX=713Bh,AX=7160h,AX=71A0h
--------D-21714E-----------------------------
INT 21 - Windows95 - LONG FILENAME - FIND FIRST MATCHING FILE
AX = 714Eh
CL = allowable-attributes mask (see #1073 at AX=4301h)
(bits 0 and 5 ignored)
CH = required-attributes mask (see #1073)
SI = date/time format (see #1432)
DS:DX -> ASCIZ filespec (both "*" and "*.*" match any filename)
ES:DI -> FindData record (see #1433)
Return: CF clear if successful
AX = filefind handle (needed to continue search)
CX = Unicode conversion flags (see #1434)
CF set on error
AX = error code
7100h if function not supported
Notes: this function is only available when IFSMgr is running, not under bare
MS-DOS 7
the application should close the filefind handle with AX=71A1h as soon
as it has completed its search
for compatibility with DOS versions prior to v7.00, the carry flag
should be set on call to ensure that it is set on exit
SeeAlso: AH=4Eh,AX=714Fh,AX=71A1h
(Table 1432)
Values for Windows95 date/time format:
0000h use 64-bit file time format
0001h use MS-DOS date/time values (see #1317,#1318) in low double-word of
file time QWORD (date is high word, time is low word of double-word)
Format of Windows95 long filename FindData record:
Offset Size Description (Table 1433)
00h DWORD file attributes
bits 0-6 standard DOS attributes (see #1073 at INT 21/AX=4301h)
bit 8: temporary file
04h QWORD file creation time (number of 100ns intervals since 1/1/1601)
0Ch QWORD last access time
14h QWORD last modification time
1Ch DWORD file size (high 32 bits)
20h DWORD file size (low 32 bits)
24h 8 BYTEs reserved
2Ch 260 BYTEs ASCIZ full filename
130h 14 BYTEs ASCIZ short filename (for backward compatibility)
Bitfields for Windows95 Unicode conversion flags:
Bit(s) Description (Table 1434)
0 the returned full filename contains underscores for un-convertable
Unicode characters
1 the returned short filename contains underscores for un-convertable
Unicode characters
--------D-21714F-----------------------------
INT 21 - Windows95 - LONG FILENAME - FIND NEXT MATCHING FILE
AX = 714Fh
BX = filefind handle (from AX=714Eh)
SI = date/time format (see #1432)
ES:DI -> buffer for FindData record (see #1433)
Return: CF clear if successful
CX = Unicode conversion flags (see #1434)
CF set on error
AX = error code
7100h if function not supported
Notes: this function is only available when IFSMgr is running, not under bare
MS-DOS 7
for compatibility with DOS versions prior to v7.00, the carry flag
should be set on call to ensure that it is set on exit
SeeAlso: AH=4Eh,AX=714Eh,AX=71A1h
--------D-217156-----------------------------
INT 21 - Windows95 - LONG FILENAME - RENAME FILE
AX = 7156h
DS:DX -> ASCIZ old file or directory name (long names allowed)
ES:DI -> ASCIZ new name (long names allowed)
Return: CF clear if successful
CF set on error
AX = error code
7100h if function not supported
Note: the file may be renamed into a different directory, but not across
disks
SeeAlso: AH=56h,AX=7141h
--------D-217160CL00-------------------------
INT 21 - Windows95 - LONG FILENAME - "TRUENAME" - CANONICALIZE PATH
AX = 7160h
CL = 00h
CH = SUBST expansion flag
00h return a path containing true path for a SUBSTed drive letter
80h return a path containing the SUBSTed drive letter
DS:SI -> ASCIZ filename or path (either long name or short name)
ES:DI -> 261-byte buffer for canonicalized name
Return: CF set on error
AX = error code
02h invalid component in directory path or drive letter only
03h malformed path or invalid drive letter
ES:DI buffer unchanged
CF clear if successful
ES:DI buffer filled with fully qualified name
AX destroyed
Desc: determine the canonical name of the specified filename or path,
corresponding to the undocumented TRUENAME command in COMMAND.COM
Notes: if a complete path is given, the result will be a short-form complete
path; otherwise, the given relative path is appended to the
short-form current directory name, '.'/'..'/'...'/etc. are resolved,
and the final result uppercased without converting any remaining
long-form names to short-form
for compatibility with DOS versions prior to v7.00, the carry flag
should be set on call to ensure that it is set on exit
SeeAlso: AH=60h,AX=7160h/CL=01h
--------D-217160CL01-------------------------
INT 21 - Windows95 - LONG FILENAME - GET SHORT (8.3) FILENAME FOR FILE
AX = 7160h
CL = 01h
CH = SUBST expansion flag
00h return a path containing true path for a SUBSTed drive letter
80h return a path containing the SUBSTed drive letter
DS:SI -> ASCIZ long filename or path
ES:DI -> 67-byte buffer for short filename
Return: CF set on error
AX = error code
02h invalid component in directory path or drive letter only
03h malformed path or invalid drive letter
ES:DI buffer unchanged
CF clear if successful
ES:DI buffer filled with equivalent short filename (full path,
even if relative path given, and all uppercase)
Note: this call returns the short name for any long-filename portions of
the provided pathname or filename
SeeAlso: AH=60h,AX=7160h/CL=00h,AX=7160h/CL=02h
--------D-217160CL02-------------------------
INT 21 - Windows95 - LONG FILENAME - GET CANONICAL LONG FILENAME OR PATH
AX = 7160h
CL = 02h
CH = SUBST expansion flag
00h return a path containing true path for a SUBSTed drive letter
80h return a path containing the SUBSTed drive letter
DS:SI -> ASCIZ short filename or path
ES:DI -> 261-byte buffer for canonicalized long name
Return: CF set on error
AX = error code
02h invalid component in directory path or drive letter only
03h malformed path or invalid drive letter
ES:DI buffer unchanged
CF clear if successful
ES:DI buffer filled with qualified long name (can contain
lowercase letters)
Desc: determine the canonical name of the specified filename or path,
corresponding to the undocumented TRUENAME command in COMMAND.COM
Note: this call returns the short name for any long-filename portions of
the provided pathname or filename
BUG: even though the maximum length of a complete long pathname is 260
characters, Windows95 returns CF set/AX=0003h even if the file
exists whenever the full pathname is more than 255 characters
SeeAlso: AH=60h,AX=7160h/CL=00h,AX=7160h/CL=01h
--------D-21716C-----------------------------
INT 21 - Windows95 - LONG FILENAME - CREATE OR OPEN FILE
AX = 716Ch
BX = access mode and sharing flags (see #1436,also AX=6C00h)
CX = attributes
DX = action (see #1435)
DS:SI -> ASCIZ filename
DI = alias hint (number to append to short filename for disambiguation)
Return: CF clear if successful
AX = file handle
CX = action taken
0001h file opened
0002h file created
0003h file replaced
CF set on error
AX = error code (see #1332)
7100h if function not supported
SeeAlso: AX=6C00h,AX=7141h,AX=7156h,AX=71A9h
Bitfields for Windows95 long-name open action:
Bit(s) Description (Table 1435)
0 open file (fail if file does not exist)
1 truncate file if it already exists (fail if file does not exist)
4 create new file if file does not already exist (fail if exists)
Note: the only valid combinations of multiple flags are bits 4&0 and 4&1
Bitfields for Windows95 file access/sharing modes:
Bit(s) Description (Table 1436)
2-0 file access mode
000 read-only
001 write-only
010 read-write
100 read-only, do not modify file's last-access time
6-4 file sharing modes
7 no-inherit flag
8 do not buffer data (requires that all reads/writes be exact physical
sectors)
9 do not compress file even if volume normally compresses files
10 use alias hint in DI as numeric tail for short-name alias
12-11 unused??? (0)
13 return error code instead of generating INT 24h if critical error
while opening file
14 commit file after every write operation
SeeAlso: #1056
--------D-2171A0-----------------------------
INT 21 - Windows95 - LONG FILENAME - GET VOLUME INFORMATION
AX = 71A0h
DS:DX -> ASCIZ root name (e.g. "C:\")
ES:DI -> buffer for file system name
CX = size of ES:DI buffer
Return: CF clear if successful
BX = file system flags (see #1437)
CX = maximum length of file name [usually 255]
DX = maximum length of path [usually 260]
ES:DI buffer filled (ASCIZ, e.g. "FAT","NTFS","CDFS")
CF set on error
AX = error code
7100h if function not supported
Notes: for the file system name buffer, 32 bytes should be sufficient; that's
what is used in some sample code by Walter Oney from Microsoft.
this function accesses the disk the first time it is called
SeeAlso: AX=714Eh,AX=7160h/CL=00h
Bitfields for long filename volume information flags:
Bit(s) Description (Table 1437)
0 searches are case sensitive
1 preserves case in directory entries
2 uses Unicode characters in file and directory names
3-13 reserved (0)
14 supports DOS long filename functions
15 volume is compressed
--------D-2171A1-----------------------------
INT 21 - Windows95 - LONG FILENAME - "FindClose" - TERMINATE DIRECTORY SEARCH
AX = 71A1h
BX = filefind handle (from AX=714Eh)
Return: CF clear if successful
CF set on error
AX = error code
7100h if function not supported
Notes: this function must be called after starting a search with AX=714Eh,
to indicate that the search handle returned by that function will
no longer be used
this function is only available when IFSMgr is running, not under bare
MS-DOS 7
*/
---------------------
[22:51:13|07-Nov-00] -=[ Yours sincerely, Roman Sidorenko ]=-
--- Terminate 5.00/Pro
|
|