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 de l’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 transmis, 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 de fichier ou peut être terminé de manière asynchrone. Si le fichier a été ouvert pour les E/S synchrones, cela doit être 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 d’état doivent être retournées. Il s’agit toujours d’une adresse valide, quel que soit le mode 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é, 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 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 était, les E/S rapides ne peuvent pas être utilisées.
Valeur de retour
La fonction KsReadFile 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 |