Freigeben über


KsWriteFile-Funktion (ks.h)

Die KsWriteFile-Funktion führt einen Schreibvorgang für das angegebene Dateiobjekt aus. Es wird davon ausgegangen, dass der Aufrufer den Zugriff auf die Datei für Vorgänge mit einem FO_SYNCHRONOUS_IO Dateiobjekt serialisiert. Die Funktion versucht, FastIoDispatch nach Möglichkeit zu verwenden, oder sie generiert eine Schreibanforderung für das Geräteobjekt. Alle relevanten Statistiken werden aktualisiert.

Syntax

KSDDKAPI NTSTATUS KsWriteFile(
  [in]           PFILE_OBJECT     FileObject,
  [in, optional] PKEVENT          Event,
  [in, optional] PVOID            PortContext,
  [out]          PIO_STATUS_BLOCK IoStatusBlock,
  [in]           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 beim Schreiben verwendet werden soll. Wenn kein Ereignis übergeben wird, wird davon ausgegangen, dass sich der Aufruf auf einem synchronen Dateiobjekt befindet, oder der Aufrufer wartet auf das Ereignis des Dateiobjekts. Wenn sich der Aufruf nicht auf einem synchronen Dateiobjekt befindet, kann er asynchron abgeschlossen werden. Wenn die Datei für synchrone E/A geöffnet wurde, muss diese Variable NULL sein. Wenn diese Variable verwendet wird, muss es sich um ein vom Objekt-Manager zugeordnetes Ereignis handeln.

[in, optional] PortContext

Enthält optional Kontextinformationen für einen Abschlussport.

[out] IoStatusBlock

Gibt den Speicherort an, an dem 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.

[in] Buffer

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

[in] Length

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

[in, optional] Key

Enthält optional einen Schlüssel oder null, wenn keine.

[in] RequestorMode

Gibt den Prozessormodus an, der im Lese-IRP platziert werden soll, wenn eine generiert werden muss. Darüber hinaus wird es verwendet, wenn ein 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, aber der vorherige Modus war, kann keine schnelle E/A verwendet werden.

Rückgabewert

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

Anforderungen

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