Функция 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 | Любой уровень |