IRP_MJ_CREATE
모든 커널 모드 드라이버는 DRIVER_DISPATCH 콜백 함수에서 IRP_MJ_CREATE 요청을 처리해야 합니다.
보낸 경우
운영 체제는 파일 개체 또는 디바이스 개체에 대한 핸들을 열기 위해 IRP_MJ_CREATE 요청을 보냅니다. 예를 들어 드라이버가 ZwCreateFile을 호출하면 운영 체제는 실제 열린 작업을 수행하기 위해 IRP_MJ_CREATE 요청을 보냅니다.
입력 매개 변수
Parameters.Create.SecurityContext 멤버는 요청에 대한 보안 컨텍스트를 설명하는 IO_SECURITY_CONTEXT 구조를 가리킵니다. Parameters.Create.SecurityContext-DesiredAccess> 멤버는 호출자가 요청하는 액세스 권한을 지정하는 액세스 마스크입니다.
Parameters.Create.Options 멤버는 핸들을 열 때 사용되는 옵션을 설명하는 ULONG 값입니다. 상위 8비트는 ZwCreateFile의 CreateDisposition 매개 변수 값에 해당하며, 낮은 24비트는 ZwCreateFile의 CreateOptions 매개 변수 값에 해당합니다.
Parameters.Create.ShareAccess 멤버는 공유 액세스 유형을 설명하는 USHORT 값입니다. 이 값은 ZwCreateFile의 ShareAccess 매개 변수 값에 해당합니다.
Parameters.Create.FileAttributes 및 Parameters.Create.EaLength 멤버는 파일 시스템 및 파일 시스템 필터 드라이버에서 사용하도록 예약되어 있습니다. 자세한 내용은 IFS(설치 가능한 파일 시스템) 설명서의 IRP_MJ_CREATE 항목을 참조하세요.
출력 매개 변수
없음
작업
대부분의 디바이스 및 중간 드라이버는 IRP의 I/O 상태 블록에서 STATUS_SUCCESS 설정하고 만들기 요청을 완료하지만, 드라이버는 필요에 따라 DRIVER_DISPATCH 콜백 함수를 사용하여 해당 핸들에 대한 후속 I/O 요청에 대한 리소스를 예약할 수 있습니다. 예를 들어 시스템 직렬 드라이버는 페이징된 코드를 매핑하고 입력 및 출력을 위해 디바이스를 열려는 사용자 모드 스레드에 대한 후속 I/O 요청을 처리하는 데 필요한 모든 리소스를 할당합니다.
요구 사항
헤더 |
Wdm.h(Wdm.h, Ntddk.h 또는 Ntifs.h 포함) |