C28650
aviso C28650: O tipo para o qual !0 está sendo usado não o trata como caso de falha.
Retornando um valor de status como ! TRUE não é o mesmo que retornar um valor de status que indica falha.
Certos tipos de dados, como NTSTATUS e HRESULT, têm macros associadas que classificam valores desses tipos em SUCCESS ou FAILURE. Essas macros verificam o bit mais significativo do(s) valor(es) retornado(s) para determinar isso. Assim, 0 e 1 são ambos classificados como valores de SUCESSO.
A maneira correta de corrigir esse aviso é retornar um código de erro adequado em vez de um valor genérico, como -1.