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


Общие сведения об объектах платформы

Интерфейсы, которые windows Driver Framework (WDF) предоставляют драйверам, основаны на объектах. Платформа определяет несколько объектов. Эти объекты экспортируют методы (функции) и свойства (данные), к которым могут обращаться драйверы. Объекты платформы также инициируют события, которые могут поддерживать драйверы, предоставляя функции обратного вызова событий.

Драйверы на основе платформы никогда не обращаются напрямую к объектам платформы. Вместо этого драйверы ссылаться на объекты с помощью дескрипторов, которые драйвер передает в качестве входных данных в методы объекта.

Все объекты платформы имеют следующие характеристики:

Количество ссылок
Платформа поддерживает количество ссылок на каждый объект. Когда платформа создает объект, она задает для него значение 1. После завершения использования объекта платформа уменьшает количество ссылок. Платформа не может удалить объект, пока число ссылок не будет уменьшено до нуля, поэтому драйверы могут предотвратить удаление объекта путем увеличения его количества ссылок.

Контекстное пространство
Драйверы на основе платформы могут создавать контекстное пространство для конкретного объекта для каждого объекта платформы, который получает или создает драйвер. Драйверы должны хранить все данные, относящиеся к объекту, в контекстном пространстве объекта. Дополнительные сведения о контекстном пространстве см. в разделе Пространство контекста объектов платформы.

Функции обратного вызова удаления
Драйверы могут регистрировать функции обратного вызова, вызываемые платформой при удалении объекта. Функции обратного вызова могут удалять ресурсы, назначаемые драйвером, такие как выделение памяти для конкретных объектов. Дополнительные сведения об этих функциях обратного вызова см. в разделе Жизненный цикл объекта framework.

Родительский объект
Все объекты платформы могут иметь родительский объект. Платформа назначает родительский объект по умолчанию для большинства объектов. Когда драйвер создает объект, он может назначить родительский объект, который переопределяет родительский объект объекта по умолчанию. Чтобы назначить родительский объект объекта, драйверы задают элемент ParentObjectструктуры WDF_OBJECT_ATTRIBUTES объекта. (Для нескольких типов объектов драйверы не могут переопределить родительский объект по умолчанию.) Когда платформа или драйвер удаляет родительский объект, платформа также удаляет дочерние элементы родительского объекта.

Общие сведения обо всех объектах, определенных WDF, см. в разделе Сводка по объектам платформы.