Поделиться через


IRP_MJ_CREATE

Каждый драйвер режима ядра должен обрабатывать запросы IRP_MJ_CREATE в функции обратного вызова DRIVER_DISPATCH .

При отправке

Операционная система отправляет IRP_MJ_CREATE запрос на открытие дескриптора к объекту файла или объекту устройства. Например, когда драйвер вызывает ZwCreateFile, операционная система отправляет запрос IRP_MJ_CREATE для выполнения фактической операции открытия.

Входные параметры

Элемент Parameters.Create.SecurityContext указывает на IO_SECURITY_CONTEXT структуру, описывающую контекст безопасности для запроса. Элемент Parameters.Create.SecurityContext-DesiredAccess> является маской доступа, указывающей права доступа, запрашиваемые вызывающим элементом.

Элемент Parameters.Create.Options — это значение ULONG, описывающее параметры, используемые при открытии дескриптора. Высокие 8 бит соответствуют значению параметра CreateDispositionдля ZwCreateFile, а низкие 24 бита соответствуют значению параметра CreateOptionsдля ZwCreateFile.

Элемент Parameters.Create.ShareAccess — это значение USHORT, описывающее тип доступа к общей папке. Это значение соответствует значению параметра ShareAccessZwCreateFile.

Элементы Parameters.Create.FileAttributes и Parameters.Create.EaLength зарезервированы для использования файловыми системами и драйверами фильтров файловой системы. Дополнительные сведения см. в разделе IRP_MJ_CREATE документации по устанавливаемой файловой системе (IFS).

Выходные параметры

Нет

Операция

Большинство драйверов устройств и промежуточных драйверов задают STATUS_SUCCESS в блоке состояния ввода-вывода IRP и завершают запрос на создание, но при необходимости драйверы могут использовать функцию обратного вызова DRIVER_DISPATCH , чтобы зарезервировать ресурсы для всех последующих запросов ввода-вывода для этого дескриптора. Например, системный последовательный драйвер сопоставляет свой выстраивный код и выделяет все ресурсы, необходимые для обработки последующих запросов ввода-вывода для потока пользовательского режима, который пытается открыть устройство для ввода и вывода.

Требования

Заголовок

Wdm.h (включая Wdm.h, Ntddk.h или Ntifs.h)

См. также раздел

DRIVER_DISPATCH

DispatchCreateClose

IO_SECURITY_CONTEXT

ZwCreateFile