Функция KsGateGetStateUnsafe (ks.h)
Функция KsGateGetStateUnsafe возвращает состояние заданного шлюза (открытого или закрытого) небезопасным образом, то есть без учета синхронизации.
Синтаксис
BOOLEAN KsGateGetStateUnsafe(
[in] PKSGATE Gate
);
Параметры
[in] Gate
Указатель на структуру KSGATE, представляющую ворота, для которых необходимо вернуть состояние.
Возвращаемое значение
Этот вызов возвращает TRUE, если шлюз открыт и FALSE, если шлюз закрыт.
Замечания
Так как KsGateGetStateUnsafe не обрабатывает синхронизацию, можно получить результат, который не соответствует состоянию шлюза, если шлюз находится в середине перехода с одного состояния на другое во время вызова.
Рассмотрим ситуацию, в которой выходные данные шлюза А подключены как входные данные к воротам B. Переход к закрытию, что приводит к переходу B от открытого к закрытому. Если в то же время другой поток вызывает KsGateGetStateUnsafe между временем закрытия A и временем закрытия B подпрограмма по-прежнему возвращается, что B был открыт.
KsGateGetStateUnsafe возвращает значение Gate->Count больше нуля. Эта функция не использует для этого какие-либо заблокированные функции. Таким образом, вызов выполняется без учета синхронизации.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно в Microsoft Windows XP и более поздних операционных системах и версиях DirectX 8.0 и более поздних версий DirectX. |
целевая платформа | Настольный |
заголовка | ks.h (include Ks.h) |
IRQL | Любой уровень |