Verwenden eines Dateihandles
In der folgenden Tabelle sind die Vorgänge aufgeführt, die Treiber für ein Dateihandle ausführen können, sowie die entsprechenden Routinen, die diese Vorgänge ausführen.
Vorgang | Aufzurufende Routine |
---|---|
Liest Daten aus der Datei. |
|
Schreiben von Daten in die Datei. |
|
Liest Metadaten für das Datei- oder Dateihandle. |
|
Schreiben sie Metadaten für das Datei- oder Dateihandle. |
Um anzugeben, wo in der Datei mit dem Lesen oder Schreiben von Daten begonnen werden soll, übergeben Sie einen ByteOffset-Parameter an ZwReadFile bzw. ZwWriteFile.
Wenn Sie das Handle mit FILE_APPEND_DATA Zugriff geöffnet haben, werden alle Daten an das Ende der Datei geschrieben, und der ByteOffset-Parameter wird ignoriert.
Unter bestimmten Bedingungen verwaltet der E/A-Manager einen aktuellen Dateipositionszeiger für die Datei. Sie können einen Lese- oder Schreibvorgang an dieser Position starten, indem Sie NULL für ByteOffset angeben. Weitere Informationen dazu, wann der aktuelle Dateipositionszeiger vorhanden ist, finden Sie weiter unten in diesem Abschnitt unter Verwenden der aktuellen Dateiposition .
Um Informationen zu einer Datei zu überprüfen oder zu ändern, rufen Sie ZwQueryInformationFile bzw . ZwSetInformationFile auf. Sie geben den bestimmten Informationstyp als FileInformationClass-Parameter für jede Routine an. Wenn Sie beispielsweise FileInformationClass auf FileBasicInformation festlegen, können Sie eine FILE_BASIC_INFORMATION Struktur untersuchen oder ändern, die unter anderem Elemente für den Zeitpunkt der Dateierstellung und den Zeitpunkt des letzten Zugriffs enthält. Informationen zu allen möglichen Werten für FileInformationClass finden Sie unter FILE_INFORMATION_CLASS.