INT 21 - Windows95 - Funkce dlouhých názvů souborů (LFN) AH = 71h AL = funkce 0Dh reset jednotky (viz AX=710Dh) 39h vytvoř adresář (viz AX=7139h) 3Ah zruš adresář (viz AX=713Ah) 3Bh nastav adresář (viz AX=713Bh) 41h smaž soubor (viz AX=7141h) 43h zjisti/nastav atributy (viz AX=7143h) 47h zjisti aktuální adresář (viz AX=7147h) 4Eh FindFirst: najdi první odpovídající soubor (viz AX=714Eh) 4Fh FindNext: najdi další odpovídající soubor (viz AX=714Fh) 56h přesuň (přejmenuj) soubor (viz AX=7156h) 60h kanonizuj jméno souboru/zjisti krátký název (viz AX=7160h) 6Ch vytvoř/otevři soubor (viz AX=716Ch) A0h zjisti informace (viz AX=71A0h) A1h ukonči FindFirst/FindNext (viz AX=71A1h) A6h zjisti info o souboru (viz AX=71A6h) A7h převod času (viz AX=71A7h/BL=00h,AX=71A7h/BL=01h) A8h vytvoř krátké jméno souboru (viz AX=71A8h) A9h vytvoř/otevři sdílený(?) soubor (viz AX=71A9h) AAh založ/ukonči SUBST (viz AX=71AAh/BH=00h,AX=71AAh/BH=02h) návrat: CF se nastaví při výskytu chyby AX = chybový kód (viz #01680) 7100h jestliže funkce není podporována CF nulový v případě úspěšného volání ostatní registry odpovídají tradičním funkcím DOSu Poznámky: Jestliže se objeví chyba 7100h, použijte tradiční funkci DOSu AX=714Eh vrací "hledací masku", kterou vložíte do funkce AX=714Fh. Jakmile je hledání ukončeno, musí být zavolána funkce AX=71A1h. Před voláním funkcí LFN by měl být CF nastavený, aby se správně nastavil při výstupu jako chybový kód. Caldera's DPMS-podporuje rozšíření DR-DOSu 7: LONGNAME.EXE BETA 1. Podporuje následující podmnožinu LFN funkcí: 39h, 3Ah, 3Bh, 41h, 43h (jen BL = 0, 1), 47h, 4Eh, 4Fh, 56h, 60h (CL = 0, 1, 2), 6Ch, A0h, A1h, A8h. BETA 2 opravuje CRC součty při některých LFN operacích s adresáři. Také opravuje algoritmus generování krátkých jmen souborů, např. LONGNAME.TXT -> LONGNAME.TXT, a ne LONGNA~1.TXT. BETA 3 přidává funkci A7h (BL=0, 1) a 4Eh/4Fh vrací čas souboru v obou formátech, v DOSovém i 64 bitovém číslu. BETA 4 přidává podporu pro redirektor Caldera's DRFAT32. COMMAND.COM v Caldera DR-OpenDOSu 7.02+ zjišťuje při každém volání přítomnost LFN API, takže ovladač může být dynamicky nahráván i odstraňován. Tento COMMAND.COM dokonce pracuje i pod MS-DOSem, všema Windowsama i pod OS/2. Jestliže chcete používat 4DOS 6.02 a novější pod systémy s LFN ovladači, nastavte v souboru 4DOS.INI proměnnou Win95LFN na Yes. RxDOS 7.2 od Mikea Podanoffského natívně podporuje většinu LFN API, včetně funkcí 39h, 3Ah, 3Bh, 41h, 43h (BL = ???), 47h, 4Bh, 4Eh, 4Fh, 56h, 60h (CL = 0, 1, 2, no CH), 6Ch, A0h, A1h a A7h. Nicméně zatím zřejmě všechny funkce podporovány nejsou. viz: AH=39h,AH=3Ah,AH=3Bh,AH=41h,AX=4300h,AX=4301h,AX=4304h,AX=4306h viz: AX=4307h,AH=47h,AH=4Eh,AH=4Fh,AH=56h,AH=6Ch,AX=714Eh,AX=714Fh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ INT 21 - Windows95 - RESET JEDNOTKY AX = 710Dh CX = podfunkce (viz #01777) DX = číslo jednotky Návrat: CF 0 Možné podfunkce: 0000h nastav buffery jednotky a proveď její reset 0001h nastav buffery jednotky, nastav cache a proveď její reset 0002h nastav DriveSpace --------D-217139----------------------------- INT 21 - Windows95 - LFN - VYTVOŘ ADRESÁŘ AX = 7139h DS:DX -> ASCIZ dlouhé jméno souboru (včetně cesty) Návrat: CF při úspěchu 0, při chybě 1 AX = chybový kód; jestliže fce není podporována, vrátí 7100h --------D-21713A----------------------------- INT 21 - Windows95 - LFN - ZRUŠ ADREÁŘ AX = 713Ah DS:DX -> ASCIZ LFN adresáře k smazání Návrat: CF při úspěchu 0, při chybě 1 AX = chybový kód; jestliže fce není podporována, vrátí 7100h --------D-21713B----------------------------- INT 21 - Windows95 - LFN - ZMĚŇ ADRESÁŘ AX = 713Bh DS:DX -> ASCIZ LFN adresáře, který se má stát aktuálním Návrat: CF při úspěchu 0, při chybě 1 AX = chybový kód; jestliže fce není podporována, vrátí 7100h --------D-217141----------------------------- INT 21 - Windows95 - LFN - ZRUŠ SOUBOR AX = 7141h DS:DX -> ASCIZ LFN souboru k smazání SI = vlajky hvězdičkové konvence a atributů: 0000h hv. konv. není povolena a atributy jsou ignorovány 0001h hv. konv. povolena, jsou mazány pouze soubory s odpovídající maskou a atributy CL = atributy pro vyhledávání pomocí hvězdičkové konvence CH = atributy, které budou smazány Návrat: CF při úspěchu 0, při chybě 1 AX = chybový kód; jestliže fce není podporována, vrátí 7100h --------D-217143----------------------------- INT 21 - Windows95 - LFN - ZJISTI/NASTAV ATRIBUTY AX = 7143h DS:DX -> ASCIZ LFN BL = podfunkce 00h zjisti atributy Návrat: CX = atributy souboru 01h nastav atributy CX = atributy 02h zjisti fyzickou velikost komprimovaného souboru Návrat: DX:AX = počet bajtů, které na disku soubor zabírá 03h nastav datum/čas posledního zápisu DI = nové datum posledního zápisu CX = nový čas posledního zápisu 04h zjisti poslední datum/čas zápisu návrat: CX = čas posledního zápisu DI = datum posledního zápisu 05h nastav datum posledního přístupu DI = datum 06h zjisti datum posledního přístupu návrat: DI = datum poseledního přístupu 07h nastav datum/čas vytvoření souboru DI = nové datum CX = nový čas SI = setiny (počítají se od údaje v CX) 08h zjisti datum/čas vytvoření souboru návrat: CX = čas DI = datum SI = setiny (od údaje v CX) Návrat: CF při úspěchu 0, při chybě 1 AX = chybový kód; jestliže fce není podporována, vrátí 7100h --------D-217147----------------------------- INT 21 - Windows95 - LFN - ZJISTI AKTUÁLNÍ ADREASÁŘ AX = 7147h DL = číslo jednotky (00h = aktuální, 01h = A:, atd.) DS:SI -> buffer pro ASCIZ jméno adresáře Návrat: CF při úspěchu 0, při chybě 1 AX = chybový kód; jestliže fce není podporována, vrátí 7100h Poznámka: Jméno adresáře neobsahuje jméno jednotky, dvojtečku ani zpětné lomítko. Nemusí to nutně být dlouhý název, funkce vrací takovou cestu, která byla použita při přístupu do aktuálního adresáře, takže může vrátit i směs krátkých a dlouhých názvů. Buffer DS:SI musí být alespoň tak velký, jakou požaduje hodnota vrácená funkcí AX=71A0h --------D-21714E----------------------------- INT 21 - Windows95 - LFN - NAJDI PRVNÍ ODPOVÍDAJÍCÍ SOUBOR AX = 714Eh CL = povolené atributy (bity 0 a 5 jsou ignorovány) CH = vyžadované atributy SI = formát data/času DS:DX -> ASCIZ specifikace souboru (pro libovolný soubor lze použít jak "*" tak i "*.*") ES:DI -> buffer pro FindData Návrat: CF při úspěchu 0, při chybě 1 AX = hledací rukojeť CX = Konverzní vlajky Poznámka: Tato funkce je dostupná pouze při přítomnosti IFSMgr, ne pod holým MS-DOSem 7 Program by měl co nejdříve po ukončení hlednání zavolat službu AX=71A1h Přípustné hodnoty pro položku "formát data a času" 0000h použij 64-bit formát času 0001h použij hodnoty datum/čas z tradičních funkcí DOSu. LFN funkce sice používají QWORD, ale v tomto módu se využije jen nižší dvojslovo, datum je ve vyšším wordu a čas v nižším wordu dvojslova. Formát tabulky FindData: Offset Velikost Popis 00h DWORD attributes bity 0-6 jsou standardní atributy DOSu, bit 8 značí "temporary file" 04h QWORD čas vytvoření souboru (počet setin od 1/1/1601(???)) 0Ch QWORD čas posledního přístupu 14h QWORD čas posledního zápisu 1Ch DWORD velikost souboru (vyšší dvojslovo) 20h DWORD velikost souboru (nižší dvojslovo) 24h 8 BAJTŮ rezervováno (momentálně nepoužito) 2Ch 260 BAJTŮ ASCIZ dlouhé jméno souboru 130h 14 BAJTŮ ASCIZ krátké jméno souboru (kvůli kompatibilitě) Poznámka: V případě, že v adresáři nejsou použity žádné dlouhé názvy, je ve Windows 95B položka "krátké jméno souboru" prázdná a programátor musí použít "dlouhý název" Bitová pole pro konverzní vlajky názvů souborů ve Windows95: Bit(y) Popis 0 Vrácené dlouhé jméno souboru obsahuje podtržítka za nepřeveditelné znaky. 1 Vrácené krátké jméno souboru obsahuje podtržtka za nepřeveditelné znaky. --------D-21714F----------------------------- INT 21 - Windows95 - LFN - NAJDI DALŠÍ ODPOVÍDAJÍCÍ SOUBOR AX = 714Fh BX = rukojeť z funkce AX=714Eh SI = date/time format (viz #01778) ES:DI -> buffer pro tabulku FindData Návrat: CF při chybě nastaven, jinak nula. V případě, že funkce není podporována, bude v AX hodnota 7100h, jinak: AH = 4Fh (nedokumentováno) AL ...zničen CX = konverzní vlajky Poznámka: Tato funkce je dostupná pouze při přítomnosti IFSMgr, ne pod holým MS-DOSem 7 --------D-217156----------------------------- INT 21 - Windows95 - LFN - PŘEJMENUJ SOUBOR AX = 7156h DS:DX -> ASCIZ starý název ES:DI -> ASCIZ nový název Návrat: CF při chybě 1, jinak 0. AX obsahuje chybový kód, v případě, že funkce není podporována, vrátí 7100h Poznámka: Soubor smí být přejmenován jakoby do jiného adresáře, ale ne na jiný disk. --------D-217160CL00------------------------- INT 21 - Windows95 - LFN - KANONIZUJ JMÉNO SOUBORU AX = 7160h CL = 00h CH = co se SUBSTituovanými jednotkami ? 00h ve vrácené cestě nepoužij SUBSTituovaný název disku, ale odpovídající název adresáře na reálném disku. 80h klidně použij název SUBSTitiuované jednotky DS:SI -> ASCIZ název souboru či cesty (LFN nebo SFN) ES:DI -> 261-bajtový buffer pro kanonizovaný název Návrat: CF nastaven při chybě AX = chybový kód 02h chybná položka v cestě 03h nesmyslná cesta nebo chybný název disku [ES:DI] se při chybě nemění CF při úspěchu nula [ES:DI] naplněn kanonizovaným názvem AX zničen Popis: Funkce je identická s nedokumentovaným příkazem TRUENAME v interpretu COMMAND.COM Poznámka: Jestliže je dána kompletní cesta, je výsledek dán v krátkých ekvivalentech vstupní cesty. Jestliže je dána relativní cesta, jsou vyhodnoceny zástupné znaky (".","..","...") a nahrazeny krátkou formou cesty. Zbývající znaky jsou ovšem ponechány v dlouhé podobě. Chyba: Windows95 nesprávně zpracovává cesty, ve kterých je za názvem disku a za dvojtečkou následují dvě po sobě jdoucí lomítka (normální nebo zpětná, to je jedno). Windows to vyhodnotí jako síťový název a několik vteřin zkouší navázat spojení, přetím než vrátí nezměněný řetězec --------D-217160CL01------------------------- INT 21 - Windows95 - LFN - ZJISTI KRÁTKÝ NÁZEV AX = 7160h CL = 01h CH = co se SUBSTituovanými jednotkami ? 00h ve vrácené cestě nepoužij SUBSTituovaný název disku, ale odpovídající název adresáře na reálném disku. 80h klidně použij název SUBSTitiuované jednotky DS:SI -> ASCIZ dlouhý název souboru nebo cesty ES:DI -> 67-bajtový (možná 128-bajtový) buffer pro krátký název Návrat: CF nastaven při chybě AX = chybový kód 02h chybná položka v cestě 03h nesmyslná cesta nebo chybný název disku [ES:DI] se při chybě nemění CF při úspěchu nula [ES:DI] naplněn krátkým a kanonizovaným názvem, vše ve velkých písmenech Poznámka: Funkce zjistí krátký název odpovídající dlouhému. --------D-217160CL02------------------------- INT 21 - Windows95 - LFN - ZJISTI KANONIZOVANÝ DLOUHÝ NÁZEV AX = 7160h CL = 02h CH = co se SUBSTituovanými jednotkami ? 00h ve vrácené cestě nepoužij SUBSTituovaný název disku, ale odpovídající název adresáře na reálném disku. 80h klidně použij název SUBSTitiuované jednotky DS:SI -> ASCIZ krátký název ES:DI -> 261-bajtový buffer pro kanonizovaný dlouhý název Návrat: CF nastaven při chybě AX = chybový kód 02h chybná položka v cestě 03h nesmyslná cesta nebo chybný název disku [ES:DI] se při chybě nemění CF při úspěchu nula [ES:DI] naplněn dlouhým a kanonizovaným názvem, může obsahovat malá písmena Popis: Určí kanonizovaný název, funkčně odpovídá nedokumentovanému příkazu TRUENAME v COMMAND.COM Chyby: * Windows95 nesprávně zpracovává cesty, ve kterých je za názvem disku a za dvojtečkou následují dvě po sobě jdoucí lomítka (normální nebo zpětná, to je jedno). Windows to vyhodnotí jako síťový název a několik vteřin zkouší navázat spojení, přetím než vrátí nezměněný řetězec * Přestože maximální délka dlouhého názvu je 260 znaků, Windows nastaví chybový kód AX=03h pro soubory s více než 255 znaky --------D-21716C----------------------------- INT 21 - Windows95 - LFN - VYTVOŘ NEBO OTEVŘI SOUBOR AX = 716Ch BX = přístupová práva a vlajky sdílení CX = atributy DX = podfunkce DS:SI -> ASCIZ název souboru DI = číslo za vlnovkou v krátkém názvu Return: CF při úspěchu 0 AX = rukojeť souboru CX = provedená akce 0001h soubor otevřen 0002h soubor vytvořen 0003h soubor zaměněn CF při chybě nastaven AX = chybový kód 7100h jestliže funkce není podporována Bitová pole pro Windows95 akce s dlouhými názvy: Bit(y) Popis 0 otevři soubor (chyba jestliže neexistuje) 1 otevři soubor a smaž obsah (truncate), chyba jestliže neexisuje 4 vytvoř nový soubor, jesliže neexistuje, když exisuje, chyba Pozn. Přípustné kombinace vlajek jsou pouze 4&0 a 4&1 Bitová pole pro Windows95 pro přístup a sdílení: Bit(y) Popis 2-0 typ přístupu 000 jen čtení 001 jen zápis 010 čtení/zápis 100 jen čtení, neměň čas posledního přístupu 6-4 módy sdílení 7 no-inherit flag 8 netvoř buffer (všechna čtení/zápisy musí být shodné s fyzickými sektory) 9 tento soubor nekomprimuj (týká se kompromovaných jednotek) 10 použij číslo v reg. DI jako doplněk za krátký název 12-11 nepoužito, mělo by být zaplněno ASCII 0 13 V případě kritické chyby nevolej INT 24h, ale jen nastav chybový kód. 14 po koždé operaci zápisu hned ulož na disk --------D-2171A0----------------------------- INT 21 - Windows95 - LFN - ZJISTI INFORMACE AX = 71A0h DS:DX -> ASCIZ jméno rootu (např. "C:\") ES:DI -> buffer pro název souborového systému CX = velikost bufferu ES:DI Návrat: CF při úspěchu 0 AX zničen BX = vlajky systému souborů CX = maximální délka názvu souboru [obvykle 255] DX = maximální délka cesty [obvykle 260] ES:DI zaplněný buffer (ASCIZ, např. "FAT","NTFS","CDFS") CF při chybě nastaven AX = chybový kód 7100h jestliže funkce není podporovaná Poznámky: Pro velikost bufferu na název souborového systému stačí 32 bajtů. Tolik používají vzorové programy Walter Oneyho z Microsoftu. Při prvním volání tato funkce zpřístupní disk. Chyba: Ve Windows95 SP1 vrací pro CD-ROM v registru DX 0 Bitová pole pro vlajky dlouhých názvů Bit(y) Popis 0 rozlišují se malá a velká písmena 1 zachovává argumenty při přístupu do adresářů (????) 2 používá unicodové znaky v názvech souborů a adresářů 3-13 rezervováno 14 podporuje užívání dlouhých názvů 15 jednotka je komprimována --------D-2171A1----------------------------- INT 21 - Windows95 - LFN - UKONČI FindFirst/FindNext (FINDCLOSE) AX = 71A1h BX = rukojeť souboru (z AX=714Eh) Návrat: CF při úspěchu 0 CF při chybě nastaven AX = chybový kód 7100h když funkce není podporována Poznámky:Tato funkce musí být volána vždy po ukončení vyhledávání, aby se DOSu řeklo, že může zrušit hledací rukojeť Tato funkce je dospupná pouze při běžícím IFSMgr, ne pod holým DOSem 7 ---------------------------------------------------------------------------- INT 21 - Windows95 - LFN - ZJISTI INFO O SOUBORU AX = 71A6h BX = rukojeť souboru DS:DX -> buffer pro informace o souboru CF nastavit Návrat: CF při úspěchu 0 DS:DX zaplněn CF při chybě nastaven AX = chybový kód 7100h funkce není podporována Tabulka informací o souboru: Offset Velikost Popis 00h DWORD atributy souboru 04h QWORD čas vytvoření (0 = nepodporováno) 0Ch QWORD čas posledního přístupu (0 = nepodporováno) 14h QWORD čas posledního zápisu 1Ch DWORD sériové číslo 20h DWORD vyšších 32 bitů velikosti souboru 24h DWORD nižších 32 bitů velikosti souboru 28h DWORD počet odkazů na soubor 2Ch DWORD unikátní identifikátor (vyšších 32 bitů) 30h DWORD unikátní identifikátor (nižších 32 bitů) Poznámka: "Unikátní identifikátor" a "sériové číslo" společně jednoznačně identifikují otevřený soubor. --------D-2171A7BL00------------------------- INT 21 - Windows95 - LFN - PŘEVOD ČASU DO FORMÁTU DOSu AX = 71A7h BL = 00h DS:SI -> časové razítko (QWORD) Návrat: CF při úspěchu 0 CX = DOS čas DX = DOS datum BH = setiny (počítají se od času v CX) CF při chybě nastaven AX = chybový kód 7100h jestliže funkce není podporovaná Popis: Převádí časovou windowsí formát časové informace do DOSového formátu. Pozn: Jestliže časové razítko je mimo rozsah od 1.1.1980 do 31.12.2107, tak konverze selže. --------D-2171A7BL01------------------------- INT 21 - Windows95 - LFN - PŘEVOD ČASU Z FORMÁTU DOSu AX = 71A7h BL = 01h CX = DOS čas DX = DOS datum BH = setiny (počítají se od údaje v CX) ES:DI -> buffer pro QWORD informaci o času Návrat: CF při úspěchu 0 ES:DI zaplněný buffer CF při chybě nastaven AX = chybový kód 7100h když funkce není podporována Popis: Převádí info o času a datu souboru do formátu pro windows 95 --------D-2171A8----------------------------- INT 21 - Windows95 - LFN - VYTVOŘ KRÁTKÝ NÁZEV AX = 71A8h DS:SI -> ASCIZ dlouhé jméno (bez cesty) ES:DI -> buffer pro krátký název v ASCIZ DH = formát krátkého názvu 00h 11-char directory entry/FCB filename format 01h DOS 8.3 DL = znakové sady bits 7-4: znaková sada pro krátké názvy bits 3-0: znaková sada pro dlouhé názvy Návrat: CF při úspěchu 0 ES:DI naplněný buffer CF při chybě nastaven AX = chybový kód 7100h jestliže funkce není podporovaná Pozn: Tato funkce používá stejný algoritmus jako souborový systém, vyjma toho, že vrácené jméno nikdy nemá číslíčko za vlnovkou. Hodnoty pro znakové sady v názvech souborů ve Windows95: 00h Windows ANSI 01h momentální OEM znaková sada 02h Unicode --------D-2171A9----------------------------- INT 21 - Windows95 - LFN - VYTVOŘ NEBO OTEVŘI SDÍLENÝ SOUBOR AX = 71A9h BX = mód přístupu a vlajky sdílení (viz fce AX=716Ch) CX = atributy DX = podfunkce DS:SI -> ASCIZ jméno souboru DI = číslo za vlnovkou pro krátký název Návrat: CF při úspěchu 0 AX = globální rukojeť souboru CX = provedená akce 0001h soubor otevřen 0002h soubor založen 0003h soubor nahrazen CF při chybě nastaven AX = chybový kód 7100h jestliže funkce není podporována Pozn: Pouze pro servery v reálném módu --------D-2171AABH00------------------------- INT 21 - Windows95 - LFN - VYTVOŘ SUBSTITUOVANOU JEDNOTKU AX = 71AAh BH = 00h BL = číslo jednotky (00h = aktuální, 01h = A:, atd.) DS:DX -> ASCIZ cesta pro přiřazení k názvu disku Návrat: CF při úspěchu 0 CF při chybě nastaven AX = chybivý kód 7100h jestliže funkce není podporovaná --------D-2171AABH01------------------------- INT 21 - Windows95 - LFN - ZRUŠ SUBST AX = 71AAh BH = 01h BL = číslo jednotky (01h = A:, atd.) Návrat: CF při úspěchu 0 CF při chybě nastaven AX = chybový kód 7100h funkce není podporovaná Pozn: Číslo jednotky nesmí být 00h ani číslo aktuálního disku --------D-2171AABH02------------------------- INT 21 - Windows95 - LFN - ZJISTI SUBST AX = 71AAh BH = 02h BL = číslo jednotky (01h = A:, atd.) DS:DX -> buffer pro odpovídající název cesty v ASCIZ Návrat: CF při úspěchu 0 DS:DX naplněný buffer CF při chybě nastaven AX = chybový kód 7100h jesliže funkce není podporovaná Poznámka: Číslo jednotky nesmí být 00h ---------------------------------------------------------------------------- INT 21 - Windows95 - FAT32 - ZJISTI VOLNÉ MÍSTO NA DISKU AX = 7303h DS:DX -> ASCIZ řetězev pro jednotku ("C:\" nebo "\\SERVER\Share") ES:DI -> buffer pro tabulku rozšířených informací o volném místě CX = délka bufferu Návrat: CF při úspěchu 0 ES:DI buffer naplněn CF při chybě nastaven AX = chybový kód Poznámka: Verze DOSu, které nepodporují volání FAT32, vracejí CF nulový (pozor na to) a v AL je 0 (metoda DOSu v1+ pro hlášení neznámých funkcí) Pod DOSem 7.x (i.e. "mód MSDOS" pod Windows95), *musí* ASCIZ řetězec v DS:DX obsahovat písmeno disku, jinak funkce nastaví CF a do AX dosadí 015h (neznámá jednotka) V DOSovém okně vede vynechání písmena (DS:DX ->"\") k použití aktuální jednotky. Chyba: Pod některými verzemi Win95 a Win98 funkce vrací maximálně 2GB volného místa, a to i na FAT32 discích větších než v 2GB. Zřejmě k tomu dochází, když počet volných clusterů je větší než 64K. Dochází k tomu jen v DOSovém okně, když nějaký rezident obsadí INT21h Formát rozšířených informací o volném místě: Offset Velikost Popis 00h WORD (ret) velikost struktury 02h WORD (call) verze struktury (0000h) (ret) aktuální verze struktury (0000h) 04h DWORD počet sektorů na cluster (s ohledem na kompresi) 08h DWORD počet bajtů na sektor 0Ch DWORD počet dostupných sektorů 10h DWORD celkový počet sektorů na jednotce 14h DWORD počet fyzických sektorů dostupných na jednotce, bez ohledu na kompresi 18h DWORD celkový počet fyzických sektorů dostupných na jednotce, bez ohledu na kompresi 1Ch DWORD počet dostupných alokačních jednotek bez ohledu na kompresi 20h DWORD celkový počet alokačních jednotek bez ohledu na kompresi 24h 8 BYTEs rezervováno