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 |