Freigeben über


KsReadFile-Funktion (ks.h)

Die KsReadFile--Funktion führt einen Lesevorgang für das angegebene Dateiobjekt aus. Es wird davon ausgegangen, dass der Aufrufer den Zugriff auf die Datei für Vorgänge für ein FO_SYNCHRONOUS_IO Dateiobjekt serialisiert. Die Funktion versucht, FastIoDispatch zu verwenden, oder generiert eine Leseanforderung für das Geräteobjekt. Alle relevanten Statistiken werden aktualisiert.

Syntax

KSDDKAPI NTSTATUS KsReadFile(
  [in]           PFILE_OBJECT     FileObject,
  [in, optional] PKEVENT          Event,
  [in, optional] PVOID            PortContext,
  [out]          PIO_STATUS_BLOCK IoStatusBlock,
  [out]          PVOID            Buffer,
  [in]           ULONG            Length,
  [in, optional] ULONG            Key,
  [in]           KPROCESSOR_MODE  RequestorMode
);

Parameter

[in] FileObject

Gibt das Dateiobjekt an, für das der Lesevorgang ausgeführt werden soll.

[in, optional] Event

Enthält optional das Ereignis, das im Lesevorgang verwendet werden soll. Wenn kein Ereignis übergeben wird, wird davon ausgegangen, dass der Aufruf für ein synchrones Dateiobjekt verwendet wird. Andernfalls wartet der Aufrufer auf das Ereignis des Dateiobjekts oder wird asynchron abgeschlossen. Wenn die Datei für synchrone E/A geöffnet wurde, muss dies NULL-sein. Wenn die Variable verwendet wird, muss es sich um ein Ereignis handeln, das vom Objekt-Manager zugewiesen wird.

[in, optional] PortContext

Enthält optional Kontextinformationen für einen Abschlussport.

[out] IoStatusBlock

Gibt die Adresse an, an der die Statusinformationen zurückgegeben werden sollen. Dies wird immer als gültige Adresse angenommen, unabhängig vom Anforderermodus.

[out] Buffer

Gibt den Puffer an, in dem die Daten gelesen werden sollen. Wenn der Puffer probed und gesperrt werden muss, wird ein Ausnahmehandler zusammen mit RequesterMode-verwendet.

[in] Length

Gibt die Größe des übergebenen Puffers an.

[in, optional] Key

Enthält optional einen Schlüssel oder null, wenn keines vorhanden ist.

[in] RequestorMode

Gibt den Prozessormodus an, der im Lese-IRP platziert werden soll, wenn eine generiert werden muss. Darüber hinaus wird er verwendet, wenn der Puffer auf probed und gesperrt werden muss. Diese Variable bestimmt auch, ob ein schneller E/A-Aufruf ausgeführt werden kann. Wenn der Anforderermodus nicht KernelMode ist, aber der vorherige Modus war, kann schnelle E/A nicht verwendet werden.

Rückgabewert

Die KsReadFile--Funktion gibt STATUS_SUCCESS zurück, STATUS_PENDING, wenn die Aktion aussteht, oder wenn die Aktion nicht erfolgreich ist, oder wenn die Aktion nicht erfolgreich ist.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- ks.h (enthalten Ks.h)
Library Ks.lib