Функция обратного вызова PFNKSPINSETDATAFORMAT (ks.h)
Подпрограмма AVStrMiniPinSetDataFormat мини-драйвера AVStream вызывается во время создания контакта, чтобы убедиться, что ранее согласованный формат данных является приемлемым для этой структуры KSPIN и соответствует этой структуре KSDATARANGE . Эта подпрограмма также называется из-за определенных типов динамических изменений формата, например принятия запроса KSPROPERTY_CONNECTION_PROPOSEDATAFORMAT свойства.
Синтаксис
PFNKSPINSETDATAFORMAT Pfnkspinsetdataformat;
NTSTATUS Pfnkspinsetdataformat(
[in] PKSPIN Pin,
[in, optional] PKSDATAFORMAT OldFormat,
[in, optional] PKSMULTIPLE_ITEM OldAttributeList,
[in] const KSDATARANGE *DataRange,
[in, optional] const KSATTRIBUTE_LIST *AttributeRange
)
{...}
Параметры
[in] Pin
Указатель на структуру KSPIN , для которой изменяется формат данных.
[in, optional] OldFormat
Необязательный элемент. Указатель на структуру KSDATAFORMAT . Мини-накопители могут использовать это поле для определения формата данных, который использовался контактом до этого вызова. Значение NULL указывает, что для пин-кода не задан формат данных и что диспетчеризация создания пин-кода еще не выполнена . Значение NULL здесь указывает, что эта подпрограмма была вызвана во время инициализации для проверки формата.
[in, optional] OldAttributeList
Необязательный элемент. Указатель на структуру KSMULTIPLE_ITEM , в котором хранятся атрибуты для предыдущего формата.
[in] DataRange
Указатель на структуру KSDATARANGE . Диапазон данных для нового формата.
[in, optional] AttributeRange
Необязательный элемент. Диапазон атрибутов для нового формата.
Возвращаемое значение
Возвращает STATUS_SUCCESS, если элемент ConnectionFormatpin соответствует диапазону, переданного в эту подпрограмму. Верните STATUS_NO_MATCH, если ConnectionFormat не соответствует заданному диапазону и мини-диск будет продолжать пытаться найти совпадение с другим диапазоном. Возвращает код ошибки, если ConnectionFormat не соответствует переданного диапазона и мини-диск не хочет продолжать пытаться найти совпадение с другим диапазоном. Не возвращайте STATUS_PENDING.
Комментарии
В круге 3 модуль прокси-сервера потоковой передачи ядра (KsProxy) задает формат данных на основе согласованного формата подключения или динамического изменения формата. KsProxy выдает запрос KSPROPERTY_CONNECTION_DATAFORMAT , который после некоторой первоначальной проверки преобразуется в этот вызов диспетчера к мини-driver. См . раздел Прокси-сервер потоковой передачи ядра. Дополнительные сведения см. в разделах Форматы данных KS и диапазоны данных и Пересечения dataRange в AVStream.
Мини-driver указывает адрес avStrMiniPinSetDataFormat в элементе SetDataFormatструктуры KSPIN_DISPATCH .
Эту процедуру можно вызвать до того, как пин-код получит IRP_MJ_CREATE, и мини-накопители должны быть готовы к решению этой ситуации.
OldFormat, OldAttributeList и AttributeRange являются необязательными параметрами и могут иметь значение NULL.
Эта подпрограмма является необязательной.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в операционных системах Microsoft Windows XP и более поздних версиях, а также DirectX 8.0 и более поздних версий. |
Целевая платформа | Персональный компьютер |
Верхняя часть | ks.h (включая Ks.h) |
IRQL | PASSIVE_LEVEL |