Binary Hell's main site

 Главная страница 
 Новости 
 Статьи 
 Продукты 
 Документация 
 Наши проекты 
 О группе 
 
 Пишите нам 
 Опыт ФИДО конференций 
 Доки по ASM-у 
 Учебники 
 Форматы файлов 
 

- 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

  

Rambler's Top100 Rambler's Top100 NET's Top100