다음을 통해 공유


파일에 대한 핸들 열기

파일에 대한 핸들을 열려면 다음 단계를 수행합니다.

  1. OBJECT_ATTRIBUTES 구조를 만들고 InitializeObjectAttributes 매크로를 호출하여 구조를 초기화합니다. 파일의 개체 이름을 InitializeObjectAttributes대한 ObjectName 매개 변수로 지정합니다.

  2. OBJECT_ATTRIBUTES 구조를 IoCreateFile, ZwCreateFile 또는 ZwOpenFile에 전달하여 파일에 대한 핸들을 엽니다.

    파일이 없으면 IoCreateFileZwCreateFile 에서 파일을 만드는 반면 ZwOpenFile 은 STATUS_OBJECT_NAME_NOT_FOUND 반환합니다.

드라이버는 거의 항상 IoCreateFile 대신 ZwCreateFile 또는 ZwOpenFile을 사용합니다.

IoCreateFile, ZwCreateFile 또는 ZwOpenFile을 호출할 때 Windows 임원은 파일을 나타내는 새 파일 개체를 만들고 개체에 대한 열린 핸들을 제공합니다. 이 파일 개체는 열려 있는 핸들을 모두 닫을 때까지 유지됩니다.

어떤 루틴을 호출하든 필요한 액세스 권한을 DesiredAccess 매개 변수로 전달해야 합니다. 이러한 권한은 드라이버가 수행할 모든 작업을 포함해야 합니다. 다음 표에서는 이러한 작업 및 요청 권한에 해당하는 액세스 권한을 나열합니다.

수술 필요한 액세스 권한

파일에서 읽습니다.

FILE_READ_DATA 또는 GENERIC_READ

파일에 씁니다.

FILE_WRITE_DATA 또는 GENERIC_WRITE

파일의 끝에만 씁니다.

파일_추가_데이터

파일의 만들기 시간과 같은 파일의 메타데이터를 읽습니다.

FILE_READ_ATTRIBUTES 또는 GENERIC_READ

파일의 만들기 시간과 같은 파일의 메타데이터를 작성합니다.

FILE_WRITE_ATTRIBUTES 또는 GENERIC_WRITE

DesiredAccess에 사용할 수 있는 값에 대한 자세한 내용은 ZwCreateFile을 참조하세요.