ВУЗ:
Составители:
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
- …
- следующая ›
- последняя »
