다음을 통해 공유


현재 파일 위치 사용

파일을 만들거나 열 때 I/O 관리자가 파일 핸들과 연결된 현재 파일 위치 포인터를 만들 수 있습니다. 이렇게 하면 현재 파일 위치에 데이터를 읽고 쓸 수 있으며 I/O 관리자는 읽거나 쓴 바이트 수만큼 위치를 자동으로 업데이트합니다.

기본적으로 I/O 관리자는 현재 파일 위치 포인터를 유지 관리하지 않습니다. 이 기본값은 효율성을 제공합니다. 현재 파일 위치를 올바르게 유지하려면 I/O 관리자가 파일 개체의 모든 읽기 및 쓰기 작업을 동기화해야 하기 때문입니다.

연결된 현재 파일 위치 포인터가 있는 핸들을 만들려면 DesiredAccess 매개 변수에서 ZwCreateFile, IoCreateFile 또는 ZwOpenFile에 대한 SYNCHRONIZE 액세스를 지정하고 CreateOptions 또는 OpenOptions 매개 변수에서 FILE_SYNCHRONOUS_IO_ALERT 또는 FILE_SYNCHRONOUS_IO_NONALERT 지정합니다. FILE_APPEND_DATA 액세스 권한도 지정하지 않도록 합니다.

ZwReadFileZwWriteFile 은 작업의 영향을 받는 데이터 바로 너머를 가리키도록 현재 파일 위치 포인터를 자동으로 업데이트합니다. 예를 들어 바이트 오프셋 101부터 20바이트를 읽는 경우 ZwReadFile 은 현재 파일 위치를 121로 업데이트합니다.

ZwQueryInformationFile 또는 ZwSetInformationFile을 각각 호출하여 현재 파일 위치를 검사하거나 변경할 수 있습니다. 두 경우 모두 FileInformationClass 매개 변수를 FilePositionInformation으로 설정합니다.