파일 핸들 사용
다음 표에서는 드라이버가 파일 핸들에서 수행할 수 있는 작업과 해당 작업을 수행하는 해당 루틴을 나열합니다.
작업 | 호출할 루틴 |
---|---|
파일에서 데이터를 읽습니다. |
|
파일에 데이터를 씁니다. |
|
파일 또는 파일 핸들에 대한 메타데이터를 읽습니다. |
|
파일 또는 파일 핸들에 대한 메타데이터를 작성합니다. |
파일에서 데이터 읽기 또는 쓰기를 시작할 위치를 나타내기 위해 ByteOffset 매개 변수를 ZwReadFile 또는 ZwWriteFile에 각각 전달합니다.
FILE_APPEND_DATA 액세스를 사용하여 핸들을 연 경우 모든 데이터가 파일의 끝에 기록되고 ByteOffset 매개 변수는 무시됩니다.
특정 조건에서 I/O 관리자는 파일에 대한 현재 파일 위치 포인터를 유지 관리합니다. ByteOffset에 대해 NULL을 지정하여 해당 위치에서 읽기 또는 쓰기 작업을 시작할 수 있습니다. 현재 파일 위치 포인터가 있는 경우에 대한 자세한 내용은 이 섹션의 뒷부 분에 있는 현재 파일 위치 사용을 참조하세요.
파일에 대한 정보를 검사하거나 변경하려면 ZwQueryInformationFile 또는 ZwSetInformationFile을 각각 호출합니다. 특정 유형의 정보를 각 루틴에 대한 FileInformationClass 매개 변수로 지정합니다. 예를 들어 FileInformationClass 를 FileBasicInformation 으로 설정하면 파일 생성 시간 및 마지막 액세스 시간에 대한 멤버를 포함하는 FILE_BASIC_INFORMATION 구조를 검사하거나 변경할 수 있습니다. FileInformationClass에 대해 가능한 모든 값에 대한 자세한 내용은 FILE_INFORMATION_CLASS 참조하세요.