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


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