структура PCPROPERTY_ITEM (portcls.h)
Структура PCPROPERTY_ITEM описывает свойство, поддерживаемое определенным фильтром, закреплением или узлом.
Синтаксис
typedef struct {
const GUID *Set;
ULONG Id;
ULONG Flags;
PCPFNPROPERTY_HANDLER Handler;
} PCPROPERTY_ITEM, *PPCPROPERTY_ITEM;
Члены
Set
Задает набор свойств. Этот элемент является указателем на GUID, который однозначно идентифицирует набор свойств. Список идентификаторов GUID набора свойств см. в наборах свойств звуковых драйверов.
Id
Указывает идентификатор свойства. Этот элемент определяет элемент свойства в наборе свойств. Если набор свойств содержит N-элементы, допустимые идентификаторы свойств являются целыми числами в диапазоне от 0 до N-1.
Flags
Указывает типы запросов свойств, поддерживаемых драйвером. Задайте для этого элемента побитовое значение OR некоторых или всех битов флагов, которые отображаются в следующей таблице.
Пометка битов | Тип запроса свойства |
---|---|
PCPROPERTY_ITEM_FLAG_GET | Запрос на получение текущего параметра данных свойств. |
PCPROPERTY_ITEM_FLAG_SET | Запрос на задание текущего параметра данных свойств. |
PCPROPERTY_ITEM_FLAG_DEFAULTVALUES | Запрос значений по умолчанию драйвера для данных свойств. |
PCPROPERTY_ITEM_FLAG_BASICSUPPORT | Запрос на базовую поддержку, указывающий, какие типы запросов обрабатывают драйвер для этого свойства, а также указывает допустимый тип данных и допустимые диапазоны для данных свойства. |
PCPROPERTY_ITEM_FLAG_SERIALIZESIZE | Запрос размера данных свойства для этого свойства при сериализации в рамках запроса KSPROPERTY_TYPE_SERIALIZESET. |
PCPROPERTY_ITEM_FLAG_SERIALIZERAW | Запрос на сериализацию этого свойства в зависимости от драйвера. Эта операция является обратной PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW. |
PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW | Запрос на отмену инициализации этого свойства в зависимости от драйвера. Эта операция является обратной PCPROPERTY_ITEM_FLAG_SERIALIZERAW. |
PCPROPERTY_ITEM_FLAG_SERIALIZE | PCPROPERTY_ITEM_FLAG_SERIALIZERAW | PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW | PCPROPERTY_ITEM_FLAG_SERIALIZESIZE |
Handler
Указатель на подпрограмму обработчика свойств. Этот элемент является указателем функции типа PCPFNPROPERTY_HANDLER, который определяется следующим образом:
typedef NTSTATUS (*PCPFNPROPERTY_HANDLER)
(
IN PPCPROPERTY_REQUEST PropertyRequest
);
См. следующий раздел "Примечания".
Замечания
Структура PCPROPERTY_ITEM указывает определенный элемент свойства в таблице автоматизации. Структура PCAUTOMATION_TABLE указывает на массив PCPROPERTY_ITEM структур.
При вызове подпрограммы обработчика обработчик вызывающий объект передается в один параметр вызова, который является указателем на структуру PCPROPERTY_REQUEST. Эта структура выделяется вызывающим объектом, и вызывающий освобождает его в любом из следующих условий:
- Если подпрограмма обработчика возвращает любой код состояния, отличный от STATUS_PENDING, вызывающий объект освобождает структуру. В этом случае драйвер минипорта не должен пытаться получить доступ к структуре после возврата подпрограммы обработчика .
- Подпрограмма обработчика также может возвращать STATUS_PENDING, в этом случае драйвер минипорта обязан вызывать PcCompletePendingPropertyRequest позже, чтобы завершить ожидающий запрос свойства. Функция PcCompletePendingPropertyRequest освобождает структуру. После вызова PcCompletePendingPropertyRequestдрайвер мини-порта не должен пытаться получить доступ к структуре.
Дополнительные сведения о сериализации и необработанной сериализации набора свойств см. в разделе свойства KS.
Требования
Требование | Ценность |
---|---|
заголовка | portcls.h (include Portcls.h) |