ВУЗ:
Составители:
34
PDEVICE_OBJECT fdo;
NTSTATUS status = IoCreateDevice(DriverObject,
sizeof(DEVICE_EXTESION), NULL, FILE_DEVICE_UNKNOWN,
FILE_DEVICE_SECURE_OPEN, FALSE, &fdo);
Первый аргумент функции (DriverObject) аналогичен первому аргументу
функции AddDevice. Он связывает драйвер с новым объектом устройства для
того, чтобы диспетчер ввода-вывода знал, кому посылать пакеты IRP,
предназначенные для этого устройства.
Второй аргумент сообщает размер структуры расширения устройства,
определенной автором драйвера (она содержит данные о конкретном экземпляре
устройства). В соответствии
с этим аргументом диспетчер ввода-вывода выделяет
память для этой структуры и помещает указатель на нее в поле
DEVICE_EXTESION объекта устройства.
Третий аргумент может содержать адрес строки UNICODE_TRING с
именем объекта устройства, если оно определено. В нашем случае имя не
определено, поэтому значение аргумента NULL.
Четвертый аргумент определяет тип устройства (один
из определенных в
WDM.H), в данном случае FILE_DEVICE_UNKNOWN. Это значение может быть
переопределено в разделе оборудования устройства или в разделе класса
системного реестра. (Если определения записаны в обоих разделах, то раздел
оборудования имеет больший приоритет.) В одном из трех мест (в аргументе
функции или хотя бы в одном разделе реестра)
должен быть указан правильный
тип устройства. В противном случае драйвер не сможет правильно
функционировать.
Пятый аргумент FILE_DEVICE_SECURE_OPEN содержит флаги поля
Characteristics, объекта устройства, описанные выше. Указанное значение может
быть переопределено таким же образом, как и предыдущий аргумент.
Шестой аргумент (FALSE), позволяет задать монопольный режим
обслуживания устройства. (Лучше этого не делать.) Указанное
значение также
может быть переопределено, как и предыдущие аргументы.
PDEVICE_OBJECT fdo; NTSTATUS status = IoCreateDevice(DriverObject, sizeof(DEVICE_EXTESION), NULL, FILE_DEVICE_UNKNOWN, FILE_DEVICE_SECURE_OPEN, FALSE, &fdo); Первый аргумент функции (DriverObject) аналогичен первому аргументу функции AddDevice. Он связывает драйвер с новым объектом устройства для того, чтобы диспетчер ввода-вывода знал, кому посылать пакеты IRP, предназначенные для этого устройства. Второй аргумент сообщает размер структуры расширения устройства, определенной автором драйвера (она содержит данные о конкретном экземпляре устройства). В соответствии с этим аргументом диспетчер ввода-вывода выделяет память для этой структуры и помещает указатель на нее в поле DEVICE_EXTESION объекта устройства. Третий аргумент может содержать адрес строки UNICODE_TRING с именем объекта устройства, если оно определено. В нашем случае имя не определено, поэтому значение аргумента NULL. Четвертый аргумент определяет тип устройства (один из определенных в WDM.H), в данном случае FILE_DEVICE_UNKNOWN. Это значение может быть переопределено в разделе оборудования устройства или в разделе класса системного реестра. (Если определения записаны в обоих разделах, то раздел оборудования имеет больший приоритет.) В одном из трех мест (в аргументе функции или хотя бы в одном разделе реестра) должен быть указан правильный тип устройства. В противном случае драйвер не сможет правильно функционировать. Пятый аргумент FILE_DEVICE_SECURE_OPEN содержит флаги поля Characteristics, объекта устройства, описанные выше. Указанное значение может быть переопределено таким же образом, как и предыдущий аргумент. Шестой аргумент (FALSE), позволяет задать монопольный режим обслуживания устройства. (Лучше этого не делать.) Указанное значение также может быть переопределено, как и предыдущие аргументы. 34
Страницы
- « первая
- ‹ предыдущая
- …
- 32
- 33
- 34
- 35
- 36
- …
- следующая ›
- последняя »