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 |