Condividi tramite


Funzione KsReadFile (ks.h)

La funzione KsReadFile esegue una lettura sull'oggetto file specificato. Si presuppone che il chiamante serializzi l'accesso al file per le operazioni su un oggetto file FO_SYNCHRONOUS_IO. La funzione tenta di usare FastIoDispatch , se possibile, o genera una richiesta di lettura sull'oggetto dispositivo. Tutte le statistiche pertinenti vengono aggiornate.

Sintassi

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

Parametri

[in] FileObject

Specifica l'oggetto file su cui eseguire la lettura.

[in, optional] Event

Facoltativamente, contiene l'evento da usare nella lettura. Se non viene passato alcun evento, si presuppone che la chiamata sia in un oggetto file sincrono. In caso contrario, il chiamante è in attesa dell'evento dell'oggetto file oppure può essere completato in modo asincrono. Se il file è stato aperto per operazioni di I/O sincrone, deve essere NULL. Se la variabile viene usata, deve essere un evento allocato dal gestore oggetti.

[in, optional] PortContext

Facoltativamente, contiene informazioni di contesto per una porta di completamento.

[out] IoStatusBlock

Specifica l'indirizzo in cui devono essere restituite le informazioni sullo stato. Si presuppone sempre che sia un indirizzo valido, indipendentemente dalla modalità richiedente.

[out] Buffer

Specifica il buffer in cui inserire i dati letti. Se il buffer deve essere probed e bloccato, viene usato un gestore di eccezioni, insieme a RequesterMode.

[in] Length

Specifica le dimensioni del buffer passato.

[in, optional] Key

Facoltativamente, contiene una chiave o zero se nessuno

[in] RequestorMode

Indica la modalità processore da inserire nell'IRP di lettura se è necessario generare un'applicazione. Viene inoltre usato se il buffer deve essere probed e bloccato. Questa variabile determina anche se è possibile eseguire una chiamata di I/O veloce. Se la modalità del richiedente non è KernelMode, ma la modalità precedente era, non è possibile usare le I/O veloci.

Valore restituito

La funzione KsReadFile restituisce STATUS_SUCCESS in caso di esito positivo, STATUS_PENDING se l'azione è in sospeso o restituisce un errore di lettura in caso di esito negativo.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione ks.h (include Ks.h)
Libreria Ks.lib