Detaillierte Aufstellung aller LFN-Funktionen des Interrupt 21h unter Windows 95/MS-DOS 7:

Name

Beschreibung

Register vor dem Aufruf

Register nach dem Aufruf

Find first

Startet eine Verzeichnissuche mit langen Verzeichnis- und Dateinamen

AX=714Eh

CL=mögliche Attribute (Tabelle 1)

CH=erforderliche Attribute

SI=Datumsformat (0: Neues 64-Bit-Format, 1: Altes DOS-Format)

DS:DX=Zeiger auf Suchmaske (ASCIZ)

ES:DI=Zeiger auf Such-Record (Tabelle 1)

Such-Record bei ES:DI gefüllt

AX=Such-Handle

CX=Unicode-Konvertierungs-Flags

Bei Fehler ist Carry-Flag gesetzt:

AX=Fehlernummer:

02h: Datei nicht gefunden

03h: Pfad nicht gefunden

7100h: Funktion nicht unterstützt

 

Find next

Setzt eine Verzeichnissuche mit langen Verzeichnis- und Dateinamen fort

AX=714Fh

BX=Such-Handle (stammt von "Find first")

SI=Datumsformat (0: Neues 64-Bit-Format, 1: Altes DOS-Format)

ES:DI=Zeiger auf Such-Record (Tabelle 1)

Such-Record bei ES:DI gefüllt

Bei Fehler ist Carry-Flag gesetzt:

AX=Fehlernummer:

12h: Keine weiteren Dateien

7100h: Funktion nicht unterstützt

 

Find Close

Beendet eine Verzeichnissuche mit langen Verzeichnis- und Dateinamen

AX=71A1h

BX=Such-Handle (stammt von "Find first")

Bei Fehler ist Carry-Flag gesetzt:

AX=Fehlernummer:

06h: Ungültiges Handle

7100h: Funktion nicht unterstützt

 

Make directory

Erstellt ein Verzeichnis mit langem Namen

AX=7139h

DS:DX=Zeiger auf Verzeichnisnamen (ASCIZ)

Bei Fehler ist Carry-Flag gesetzt:

AX=Fehlernummer:

03h: Pfad nicht gefunden

50h: Eintrag existiert

7100h: Funktion nicht unterstützt

 

Change directory

Wechselt in ein Verzeichnis mit langem Namen

AX=713Ah

DS:DX=Zeiger auf Verzeichnisnamen (ASCIZ)

Bei Fehler ist Carry-Flag gesetzt:

AX=Fehlernummer:

03h: Pfad nicht gefunden

7100h: Funktion nicht unterstützt

 

Remove directory

Löscht ein Verzeichnis mit langem Namen

AX=713Bh

DS:DX=Zeiger auf Verzeichnisnamen (ASCIZ)

Bei Fehler ist Carry-Flag gesetzt:

AX=Fehlernummer:

03h: Pfad nicht gefunden

7100h: Funktion nicht unterstützt

Get current directory

Ermittelt das aktuelle Verzeichnis mit langem Namen

AX=7147h

DS:DI=Zeiger auf Puffer für Verzeichnisnamen (ASCIZ)

Bei Fehler ist Carry-Flag gesetzt:

AX=Fehlernummer:

7100h: Funktion nicht unterstützt

Create/open file

Erstellt oder öffnet eine Datei

AX=716Ch

BX=Zugriffs/Sharing-Bits (Tabelle 3)

CX=Dateiattribute

DX=Aktion (siehe Text)

DI=Gewünschte Nummer für kurzen Dateinamen

DS:SI=Zeiger auf Puffer mit Dateinamen (ASCIZ)

 

AX=Datei-Handle

CX=Durchgeführte Aktion

Bei Fehler ist Carry-Flag gesetzt:

AX=Fehlernummer:

Diverse: Je nach Aktion

7100h: Funktion nicht unterstützt

Close file

Schließt eine geöffnete Datei (keine LFN-Variante verfügbar)

AH=3Eh

BX=Datei-Handle

Bei Fehler ist Carry-Flag gesetzt:

AX=Fehlernummer:

06h: Ungültiges Handle

Rename file/directory

Benennt einen Verzeichniseintrag um

AX=7156h

DS:DX=Alter Name (ASCIZ)

ES:SI=Alter Name (ASCIZ)

Bei Fehler ist Carry-Flag gesetzt:

AX=Fehlernummer:

Diverse: Je nach Aktion

7100h: Funktion nicht unterstützt

Delete file/directory

Löscht eine Datei (oder mehrere)

AX=7141h

DS:DX=Name der zu löschenden Datei

SI=Joker- und Attribut-Flag

Falls SI=1 dann:

"*" und "?" in Name erlaubt sowie CL=mögliche Attribute und CH=erforderliche Attribute

Bei Fehler ist Carry-Flag gesetzt:

AX=Fehlernummer:

Diverse: Je nach Aktion

7100h: Funktion nicht unterstützt

Create subst

Weist einer Laufwerkskennung einen Pfad zu

AX=71AAh

BH=0

BL=Laufwerk (0=aktuell, 1=A:, 2=B:, usw.)

DS:DX=Name des zu substituierenden Pfades (ASCIZ)

Bei Fehler ist Carry-Flag gesetzt:

AX=Fehlernummer:

7100h: Funktion nicht unterstützt

Terminate subst

Beendet die Laufwerkszuweisung auf einen Pfad

AX=71AAh

BH=1

BL=Laufwerk (1=A:, 2=B:, usw., aber 0 nicht erlaubt)

Bei Fehler ist Carry-Flag gesetzt:

AX=Fehlernummer:

7100h: Funktion nicht unterstützt

Query subst

Ermittelt den Bezug einer Laufwerkskennung auf einen Pfad

AX=71AAh

BH=2

BL=Laufwerk (1=A:, 2=B:, usw., aber 0 nicht erlaubt)

DS:DX=Puffer für Namen des eventuell substituierten Pfad (ASCIZ)

Bei Fehler ist Carry-Flag gesetzt:

AX=Fehlernummer:

7100h: Funktion nicht unterstützt

Truename

Löst den Pfad eines Verzeichnisses oder eines Namens komplett auf

AX=7160h

CL=Modus:

0: keine Konvertierung von kurzen Namen in lange oder umgekehrt

1: Ergebnis enthält nur kurze Namen

2: Ergebnis enthält nur lange Namen

CH=Expansions-Flag:

0: Auch substituierte Laufwerkskennung auflösen

1: Substituierte Laufwerkskennung im Ergebnis beibehalten

DS:SI=Zeiger auf ASCIZ-String mit aufzulösendem Pfad

ES:DI=Zeiger auf Ergebnispuffer

Inhalt des Ergebnispuffers siehe Text

Bei Fehler ist Carry-Flag gesetzt:

AX=Fehlernummer:

7100h: Funktion nicht unterstützt

Get volume information

Ermittelt verschiedene Laufwerksinformationen

AX=71A0h

DS:DX=Zeiger auf ASCIZ-String mit Laufwerksbuchstaben

ES:DI=Zeiger auf Ergebnispuffer für Dateisystemname

CX=Größe des Ergebnispuffers

Bei Fehler ist Carry-Flag gesetzt:

AX=Fehlernummer:

7100h: Funktion nicht unterstützt

Get file information by handle

Ermittelt verschiedene Dateiinformationen über Handle

AX=71A6h

BX=Datei-Handle

DS:DX=Zeiger auf Ergebnispuffer

Ergebnispuffer gefüllt - Details siehe Tabelle 4

Bei Fehler ist Carry-Flag gesetzt:

AX=Fehlernummer:

7100h: Funktion nicht unterstützt

File time to DOS time

Wandelt 64-Bit-Zeitformat in DOS-Format um

AX=71A7h

BL=0

DS:SI=Zeiger auf 8-Byte-Puffer mit 64-Bit-Zeitinfo

CX=Zeit in DOS-Format

DX=Datum in DOS-Format

BH=Anzahl der 1/100 Sekunden für CX

Bei Fehler ist Carry-Flag gesetzt:

AX=Fehlernummer:

7100h: Funktion nicht unterstützt

DOS time to File time

Wandelt DOS-Zeitformat 64-Bit-Format in um

AX=71A0h

BL=1

CX=Zeit in DOS-Format

DX=Datum in DOS-Format

BH=Anzahl der 1/100 Sekunden für CX

ES:DI=Zeiger auf 8-Byte-Puffer für 64-Bit-Zeitinfo

Puffer bei ES:DI ist mit 64-Bit-Zeit gefüllt.

Bei Fehler ist Carry-Flag gesetzt:

AX=Fehlernummer:

7100h: Funktion nicht unterstützt

Get/set file attributes

Dateiattribute lesen/setzen

AX=7143h

DS:DX=Zeiger Auf Dateinamen (ASCIZ)

BL=Aktion:

0: Lade CX Mit Dateiattributen

1: Schreibe Dateiattribute In CX

2: Lade AX:DX mit physikalischer Größe einer kompromierten Datei

3: Schreibe neues Änderungsdatum (DOS-Format: CX=Zeit, DI=Datum)

4: Lies letztes Änderungsdatum in DOS-Format nach CX (Zeit) und DI (Datum)

5: Schreibe neues Zugriffsdatum (DOS-Format: CX=Zeit, DI=Datum)

6: Lies letztes Zugriffsdatum in DOS-Format nach CX (Zeit) und DI (Datum)

7: Schreibe neues Erstellungsdatum (DOS-Format: CX=Zeit, DI=Datum)

8: Lies Erstellungsdatum in DOS-Format nach CX (Zeit) und DI (Datum)

Register gemäß Aktion gefüllt oder verarbeitet.

Bei Fehler ist Carry-Flag gesetzt:

AX=Fehlernummer:

7100h: Funktion nicht unterstützt

 

©1998-2004 by Wolfgang Wirth