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 nach Möglichkeit 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 Read verwendet werden soll. Wenn kein Ereignis übergeben wird, wird davon ausgegangen, dass sich der Aufruf für ein synchrones Dateiobjekt befindet. Andernfalls wartet der Aufrufer auf das Ereignis des Dateiobjekts, oder es wird möglicherweise asynchron abgeschlossen. Wenn die Datei für synchrone E/A-Vorgänge geöffnet wurde, muss dies NULL sein. Wenn die Variable verwendet wird, muss es sich um ein vom Objekt-Manager zugewiesenes Ereignis handeln.

[in, optional] PortContext

Enthält optional Kontextinformationen für einen Vervollständigungsport.

[out] IoStatusBlock

Gibt die Adresse an, an der die status Informationen zurückgegeben werden sollen. Es wird immer davon ausgegangen, dass es sich um eine gültige Adresse handelt, unabhängig vom Anforderermodus.

[out] Buffer

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

[in] Length

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

[in, optional] Key

Optional enthält einen Schlüssel oder null, wenn keiner

[in] RequestorMode

Gibt den Prozessormodus an, der in der Lese-IRP platziert werden soll, falls eine generiert werden muss. Darüber hinaus wird es verwendet, wenn der Puffer untersucht und gesperrt werden muss. Diese Variable bestimmt auch, ob ein schneller E/A-Aufruf ausgeführt werden kann. Wenn der Anforderermodus nicht KernelMode, sondern der vorherige Modus war, können schnelle E/A-Vorgänge nicht verwendet werden.

Rückgabewert

Die KsReadFile-Funktion gibt bei erfolgreicher Ausführung STATUS_SUCCESS zurück, STATUS_PENDING, wenn die Aktion aussteht, oder sie gibt einen Lesefehler zurück, wenn der Fehler nicht erfolgreich ist.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header ks.h (einschließlich Ks.h)
Bibliothek Ks.lib