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