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


C28135

предупреждение C28135: если первый аргумент к KeWaitForSingleObject является локальной переменной, параметр Mode должен быть KernelMode

Драйвер ожидает в пользовательском режиме. Таким образом, стек ядра можно переключить во время ожидания. Если драйвер пытается передать параметры в стеке, может привести к сбою системы.

Пример

Следующий пример кода вызывает это предупреждение.

KeWaitForSingleObject(&MyMutex, UserRequest, UserMode, false, NULL);

Следующий пример кода избегает этого предупреждения.

KeWaitForSingleObject(&MyMutex, UserRequest, KernelMode, false, NULL);