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


Функция обратного вызова PFNKSPINSETDEVICESTATE (ks.h)

Подпрограмма AVStream minidriver AVStrMiniPinSetDeviceStat e вызывается при изменении состояния KSPIN из-за прибытия свойства состояния подключения "set" IOCTL. Как правило, это будет предоставлено мини-накопителями, которые должны изменить состояние оборудования.

Синтаксис

PFNKSPINSETDEVICESTATE Pfnkspinsetdevicestate;

NTSTATUS Pfnkspinsetdevicestate(
  [in] PKSPIN Pin,
  [in] KSSTATE ToState,
  [in] KSSTATE FromState
)
{...}

Параметры

[in] Pin

Указатель на структуру KSPIN, для которой изменяется состояние.

[in] ToState

Целевой KSSTATE после получения IOCTL.

[in] FromState

Предыдущий KSSTATE.

Возвращаемое значение

Верните STATUS_SUCCESS или код ошибки, возвращенный из попытки задать состояние. Не возвращайте STATUS_PENDING. Мьютекс элемента управления фильтра хранится во время этой функции. См. мьютекс управления фильтрами в AVStream.

Замечания

Мини-driver задает адрес этой подпрограммы в элементе SetDeviceState его структуры KSPIN_DISPATCH.

Мини-drivers не получат остановку при первоначальном подключении пин-кода.

Закрепление, использующее стандартный механизм транспорта (стандартный интерфейс или стандартный носитель или явное использование KSPIN_FLAG_USE_STANDARD_TRANSPORT в KSPIN_DESCRIPTOR_EX) получает отфильтрованные изменения состояния через канал владения через эту подпрограмму. Это означает, что переход не будет более одного шага. Другими словами, KSSTATE_STOP переходы на KSSTATE_ACQUIRE, KSSTATE_ACQUIRE переходы на KSSTATE_PAUSE и т. д. Кроме того, изменения состояния, полученные в этой подпрограмме, представляют состояние канала в целом, а не отдельное состояние пин-кода, как сообщается в DeviceState член структуры KSPIN.

Закрепление, не использующее стандартный механизм транспорта (нестандартный интерфейс, нестандартный носитель или явное использование KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT в KSPIN_DESCRIPTOR_EX) получает нефильтрованные изменения состояния через эту подпрограмму. Таким образом, нестандартные пин-коды транспорта должны быть готовы к изменениям состояния, которые прыгают более одного шага. Например, рассмотрим переход от KSSTATE_RUN до KSSTATE_STOP без взаимодействия KSSTATE_PAUSE. Кроме того, состояние, сообщаемое этой подпрограмме, будет идентично состоянию, сообщаемого в DeviceState член соответствующей структуры KSPIN.

Эта подпрограмма является необязательной.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Microsoft Windows XP и более поздних операционных системах и версиях DirectX 8.0 и более поздних версий DirectX.
целевая платформа Настольный
заголовка ks.h (include Ks.h)
IRQL PASSIVE_LEVEL

См. также

KSPIN_DISPATCH