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


Функция KsGateGetStateUnsafe (ks.h)

Функция KsGateGetStateUnsafe возвращает состояние заданного шлюза (открытого или закрытого) небезопасным образом, то есть без учета синхронизации.

Синтаксис

BOOLEAN KsGateGetStateUnsafe(
  [in] PKSGATE Gate
);

Параметры

[in] Gate

Указатель на структуру KSGATE , представляющую шлюз, для которого возвращается состояние.

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

Этот вызов возвращает значение TRUE , если шлюз открыт, и FALSE , если шлюз закрыт.

Комментарии

Так как KsGateGetStateUnsafe не обрабатывает синхронизацию, можно получить результат, который не соответствует состоянию шлюза, если шлюз находится в середине перехода из одного состояния в другое во время вызова.

Рассмотрим ситуацию, в которой выход шлюза A подключается в качестве входных данных к шлюзу B. Объект переходит к закрытому, что приводит к переходу B с открытого на закрытое. Если в то же время другой поток вызывает KsGateGetStateUnsafe между моментом закрытия A и B, подпрограмма по-прежнему возвращает, что B был открыт.

KsGateGetStateUnsafe возвращает значение, указывающее, больше ли значение параметра Gate-Count>. Функция не использует для этого функции с блокировкой. Таким образом, вызов выполняется без учета синхронизации.

Требования

Требование Значение
Минимальная версия клиента Доступно в операционных системах Microsoft Windows XP и более поздних версиях, а также DirectX 8.0 и более поздних версий.
Целевая платформа Персональный компьютер
Верхняя часть ks.h (включая Ks.h)
IRQL Любой уровень