C28716
предупреждение C28716: приведение между семантически разными целочисленными типами с помощью компилятора
Это предупреждение указывает, что логическое значение используется в качестве NTSTATUS без явного приведения. Это, скорее всего, даст нежелательные результаты. Например, типичное значение сбоя для функций, возвращающих логическое значение (false), указывает на состояние успешного выполнения при тестировании в качестве NTSTATUS.
Пример
PREfast сообщает предупреждение для следующего примера.
extern bool SomeMemAllocFunction(void **);
return SomeMemAllocFunction(&MyPtr);
В следующем примере показано, как избежать ошибки.
extern bool SomeMemAllocFunction(void **);
if (SomeMemAllocFunction(&MyPtr) == true) {
return STATUS_SUCCESS;
} else {
return STATUS_NO_MEMORY;
}