Up ] Docs Home ]

Format of IFS request block

Back ] Next ]

Offset Size Description

00h

WORD

total size in bytes of request

02h

BYTE

class of request
02h = ???
03h = redirection
04h = ???
05h = file access
06h = convert error code to string
07h = ???

03h

WORD

returned DOS error code

05h

BYTE

IFS driver exit status
00h = success
01h = ???
02h = ???
03h = ???
04h = ???
FFh = internal failure

06h

16 BYTEs

???

---request class 02h---

16h

BYTE

function code
04h = ???

17h

BYTE

unused???

18h

DWORD

pointer to ???

1Ch

DWORD

pointer to ???

20h

2 BYTEs

???

---request class 03h---

16h

BYTE

function code

17h

BYTE

???

18h

DWORD

pointer to ???

1Ch

DWORD

pointer to ???

22h

WORD

returned ???

24h

WORD

returned ???

26h

WORD

returned ???

28h

BYTE

returned ???

29h

BYTE

unused???

---request class 04h---

16h

DWORD

pointer to ???

1Ah

DWORD

pointer to ???

---request class 05h---

16h

BYTE

function code
01h = flush disk buffers
02h = get disk space
03h = MKDIR
04h = RMDIR
05h = CHDIR
06h = delete file
07h = rename file
08h = search directory
09h = file open/create
0Ah = LSEEK
0Bh = read from file
0Ch = write to file
0Dh = lock region of file
0Eh = commit/close file
0Fh = get/set file attributes
10h = printer control
11h = ???
12h = process termination
13h = ???

Offset Size Description

---class 05h function 01h---

17h 7 BYTEs ???
1Eh DWORD pointer to ???
22h 4 BYTEs ???
26h BYTE ???
27h BYTE ???

---class 05h function 02h---

17h 7 BYTEs ???
1Eh DWORD pointer to ???
22h 4 BYTEs ???
26h WORD returned total clusters
28h WORD returned sectors per cluster
2Ah WORD returned bytes per sector
2Ch WORD returned available clusters
2Eh BYTE returned ???
2Fh BYTE ???

---class 05h functions 03h, 04h, 05h---

17h 7 BYTEs ???
1Eh DWORD pointer to ???
22h 4 BYTEs ???
26h DWORD pointer to directory name

---class 05h function 06h---

17h 7 BYTEs ???
1Eh DWORD pointer to ???
22h 4 BYTEs ???
26h WORD attribute mask
28h DWORD pointer to filename

---class 05h function 07h---

17h 7 BYTEs ???
1Eh DWORD pointer to ???
22h 4 BYTEs ???
26h WORD attribute mask
28h DWORD pointer to source filespec
2Ch DWORD pointer to destination filespec

---class 05h function 08h---

17h 7 BYTEs ???
1Eh DWORD pointer to ???
22h 4 BYTEs ???
26h BYTE
00h = FINDFIRST
01h = FINDNEXT
28h DWORD pointer to FindFirst search data + 01h if FINDNEXT
2Ch WORD search attribute if FINDFIRST
2Eh DWORD pointer to filespec if FINDFIRST

---class 05h function 09h---

17h 7 BYTEs ???
1Eh DWORD pointer to ???
22h DWORD pointer to IFS open file structure (see #01661)
26h WORD ???

together, specify open vs. create, whether or not to truncate

28h WORD ???
2Ah 4 BYTEs ???
2Eh DWORD pointer to filename
32h 4 BYTEs ???
36h WORD file attributes on call
returned ???
38h WORD returned ???

---class 05h function 0Ah---

17h 7 BYTEs ???
1Eh DWORD pointer to ???
22h DWORD pointer to IFS open file structure (see #01661)
26h BYTE seek type (02h = from end)
28h DWORD offset on call
returned new absolute position

---class 05h functions 0Bh, 0Ch---

17h 7 BYTEs ???
1Eh DWORD pointer to ???
22h DWORD pointer to IFS open file structure (see #01661)
28h WORD number of bytes to transfer
returned bytes actually transferred
2Ah DWORD transfer address

---class 05h function 0Dh---

17h 7 BYTEs ???
1Eh DWORD pointer to ???
22h DWORD pointer to IFS open file structure (see #01661)
26h BYTE file handle???
27h BYTE unused???
28h WORD ???
2Ah WORD ???
2Ch WORD ???
2Eh WORD ???

---class 05h function 0Eh---

17h 7 BYTEs ???
1Eh DWORD pointer to ???
22h DWORD pointer to IFS open file structure (see #01661)
26h BYTE
00h = commit file
01h = close file
27h BYTE unused???

---class 05h function 0Fh---

17h 7 BYTEs ???
1Eh DWORD pointer to ???
22h 4 BYTEs ???
26h BYTE
02h = GET attributes
03h = PUT attributes
27h BYTE unused???
28h 12 BYTEs ???
34h WORD search attributes???
36h DWORD pointer to filename
3Ah WORD (GET) returned ???
3Ch WORD (GET) returned ???
3Eh WORD (GET) returned ???
40h WORD (GET) returned ???
42h WORD (PUT) new attributes
(GET) returned attributes

---class 05h function 10h---

17h 7 BYTEs ???
1Eh DWORD pointer to ???
22h DWORD pointer to IFS open file structure (see #01661)
26h WORD ???
28h DWORD pointer to ???
2Ch WORD ???
2Eh BYTE ???
2Fh BYTE subfunction
01h = get printer setup
03h = ???
04h = ???
05h = ???
06h = ???
07h = ???
21h = set printer setup

---class 05h function 11h---

17h 7 BYTEs ???
1Eh DWORD pointer to ???
22h DWORD pointer to IFS open file structure (see #01661)
26h BYTE subfunction
27h BYTE unused???
28h WORD ???
2Ah WORD ???
2Ch WORD ???
2Eh BYTE ???
2Fh BYTE ???

---class 05h function 12h---

17h 15 BYTEs unused???
26h WORD PSP segment
28h BYTE type of process termination
29h BYTE unused???

---class 05h function 13h---

17h 15 BYTEs unused???
26h WORD PSP segment

---request class 06h---

16h

DWORD

returned pointer to string corresponding to error code at 03h

1Ah

BYTE

returned ???

1Bh

BYTE

unused

---request class 07h---

16h

DWORD

pointer to IFS open file structure (see #01661)

1Ah

BYTE

???

1Bh

BYTE

unused???

See Also:

#01659,#01658,#01661