Функция обратного вызова 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

См. также раздел

IRP_MJ_CREATE

KSDATAFORMAT

KSDATARANGE

KSMULTIPLE_ITEM

KSPIN

KSPIN_DISPATCH