DevHlp_ReadFile is used by base device drivers to read a file previously opened using DevHlp_OpenFile.
Calling Sequence in Assembler
LES DI, ReadFile MOV DL, DevHlp_ReadFile CALL [Device_Help]
ES DI points to a FILEIOINFO structure defined as follows
FILEIOINFO struc length dw 8 ; length of imbedded fle system operation structure ; FREAD struc Buffer dd ? ; 16 16 pointer to the input buffer ReadSize dd ? ; length of data to read FREAD ends ; FILEIOINFO ends
Results in Assembler
C Clear if the file is closed. AX = zero.
C Set if error. Possible errors
24 ERROR_BAD_LENGTH
Calling Sequence in C
#include "dhcalls.h"
USHORT APIENTRY DevHelp_ReadFile
typedef struct FOPEN { PSZ FileName; /* (input) pointer to file name */ ULONG FileSize; /* (output) size of file returned by FileOpen */ } FILEOPEN; typedef struct FCLOSE { USHORT reserved /* reserved */ } FILECLOSE; typedef struct FREAD { PBYTE Buffer; /* (input) pointer to input buffer */ ULONG ReadSize; /* (input) number of bytes to read fromfile */ } FILEREAD; typedef struct FREADAT { PBYTE Buffer; /* (input) pointer to input buffer */ ULONG ReadSize; /* (input) number of bytes to read from file */ ULONG StartPosition /* (input) starting file position relative to the beginning of the file */ } FILEREADAT; typedef union FILEIOOP { struct FOPEN FileOpen; struct FCLOSE FileClose; struct FREAD FileRead; struct FREADAT FileReadAt; } FILEIOOP; typedef struc _DDFileIo { USHORT Length; /* (input) length of imbedded structure */ FILEIOOP Data; /* (input) imbedded file system operation structure */ } FILEIOINFO, FAR * PFILEIOINFO
Results in C
24 ERROR_BAD_LENGTH
Remarks
The file is read from the current file position. After a successful read, the current file position is updated.
Using this interface only one file may be opened at a time. No handle is assigned by open. The file read is assumed to be the most recent opened using DevHlp_OpenFile.