Partager via


KsReadFile, fonction (ks.h)

La fonction KsReadFile effectue une lecture 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 de lecture sur l’objet d’appareil. Toutes les statistiques pertinentes sont mises à jour.

Syntaxe

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

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 la lecture. Si aucun événement n’est passé, l’appel est supposé se trouver sur un objet de fichier synchrone. Si ce n’est pas le cas, l’appelant attend l’événement de l’objet fichier, ou il peut être terminé de manière asynchrone. Si le fichier a été ouvert pour les E/S synchrones, il doit avoir la valeur NULL. Si la 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

Spécifie l’adresse à laquelle les informations status doivent être retournées. Il s’agit toujours d’une adresse valide, quel que soit le mode du demandeur.

[out] Buffer

Spécifie la mémoire tampon dans laquelle placer les données lues. Si la mémoire tampon doit être sondée et verrouillée, un gestionnaire d’exceptions est utilisé, avec 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 l’un d’eux doit être généré. En outre, il est utilisé si la 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 l’était, les E/S rapides ne peuvent pas être utilisées.

Valeur retournée

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

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête ks.h (inclure Ks.h)
Bibliothèque Ks.lib