Partager via


KsWriteFile, fonction (ks.h)

La fonction KsWriteFile effectue une écriture sur l’objet de fichier spécifié. Il est supposé que l’appelant sérialise l’accès au fichier pour les opérations sur un objet de fichier FO_SYNCHRONOUS_IO. La fonction tente d’utiliser FastIoDispatch si possible, ou génère une demande d’écriture sur l’objet de l’appareil. Toutes les statistiques pertinentes sont mises à jour.

Syntaxe

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
);

Paramètres

[in] FileObject

Spécifie l’objet de fichier sur lequel effectuer la lecture.

[in, optional] Event

Contient éventuellement l’événement à utiliser dans l’écriture. Si aucun événement n’est passé, l’appel est supposé se trouver sur un objet de fichier synchrone ou l’appelant attend l’événement de l’objet de fichier. Si l’appel n’est pas sur un objet de fichier synchrone, il peut être terminé de manière asynchrone. Si le fichier a été ouvert pour les E/S synchrones, cette variable doit être NULL. Si cette variable est utilisée, il doit s’agir d’un événement alloué par le gestionnaire d’objets.

[in, optional] PortContext

Contient éventuellement des informations de contexte pour un port d’achèvement.

[out] IoStatusBlock

Indique l’emplacement dans lequel retourner les informations d’état. Il s’agit toujours d’une adresse valide, quel que soit le mode demandeur.

[in] Buffer

Spécifie la mémoire tampon à partir de laquelle écrire les données. Si la mémoire tampon doit être sondée et verrouillée, un gestionnaire d’exceptions est utilisé, ainsi que RequesterMode.

[in] Length

Spécifie la taille de la mémoire tampon passée.

[in, optional] Key

Contient éventuellement une clé ou zéro si aucune.

[in] RequestorMode

Indique le mode processeur à placer dans l’IRP de lecture si vous devez en générer un. En outre, elle est utilisée si une mémoire tampon doit être sondée et verrouillée. Cette variable détermine également si un appel d’E/S rapide peut être effectué. Si le mode demandeur n’est pas KernelMode, mais que le mode précédent était, les E/S rapides ne peuvent pas être utilisées.

Valeur de retour

La fonction KsWriteFile retourne STATUS_SUCCESS si elle réussit, STATUS_PENDING si l’action est en attente, ou renvoie une erreur de lecture en cas d’échec.

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête ks.h (include Ks.h)
bibliothèque Ks.lib