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