Int 21 Fn 714E - Windows95 - Long Filename - Find First Matching File [D]

AX = 714Eh
CL = allowable-attributes mask (see #1107 at AX=4301h)
(bits 0 and 5 ignored)
CH = required-attributes mask (see #1107)
SI = date/time format (see #1467)
DS:DX -> ASCIZ filespec (both "*" and "*.*" match any filename)
ES:DI -> FindData record (see #1468)

Return: CF clear if successful
AX = filefind handle (needed to continue search)
CX = Unicode conversion flags (see #1469)
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

See Also: AH=4Eh,AX=714Fh,AX=71A1h

(Table 1467)
Values for Windows95 date/time format:
0000h use 64-bit file time format
0001h use MS-DOS date/time values (see #1351,#1352) 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 1468)
00h DWORD file attributes
bits 0-6 standard DOS attributes (see #1107 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 1469)
0 the returned full filename contains underscores for un-convertable
Unicode characters
1 the returned short filename contains underscores for un-convertable
Unicode characters