Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Quando si crea o si apre un file, è possibile far sì che il gestore di I/O crei un puntatore di posizione del file corrente associato all'handle del file. Al termine, è possibile leggere e scrivere dati nella posizione corrente del file e il gestore di I/O aggiornerà automaticamente la posizione in base al numero di byte letti o scritti.
Per impostazione predefinita, il gestore I/O non mantiene un puntatore alla posizione corrente del file. Questa impostazione predefinita garantisce efficienza, perché per mantenere correttamente la posizione del file corrente è necessario che il gestore di I/O sincronizzi ogni operazione di lettura e scrittura sull'oggetto file.
Per creare un handle con un puntatore alla posizione del file corrente associato, specificare il diritto di accesso SYNCHRONIZE nel parametro DesiredAccess su ZwCreateFile, IoCreateFile o ZwOpenFile e FILE_SYNCHRONOUS_IO_ALERT o FILE_SYNCHRONOUS_IO_NONALERT nel parametro CreateOptions o OpenOptions . Assicurarsi di non specificare anche il diritto di accesso FILE_APPEND_DATA.
ZwReadFile e ZwWriteFile aggiornano automaticamente il puntatore di posizione del file corrente in modo che punti appena oltre i dati interessati dall'operazione. Ad esempio, se si leggono 20 byte a partire dall'offset di byte 101, ZwReadFile aggiornerà la posizione corrente del file su 121.
Puoi esaminare o modificare la posizione corrente del file chiamando rispettivamente ZwQueryInformationFile o ZwSetInformationFile. In entrambi i casi, impostare il parametro FileInformationClass su FilePositionInformation.