Comparteix via


C28714

advertencia C28714: Conversión entre tipos enteros semánticamente diferentes

Esta advertencia indica que un valor de NTSTATUS se convierte explícitamente en un tipo booleano. Esto es probable que proporcione resultados no deseados. Por ejemplo, el valor correcto típico de NTSTATUS, STATUS_SUCCESS, es false cuando se prueba como booleano.

En la mayoría de los casos, la macro NT_SUCCESS debe usarse para probar el valor de un NTSTATUS. Esta macro devuelve true si el valor de estado devuelto no es una advertencia ni un código de error. Si una función devuelve un valor booleano para indicar su error o éxito, debe devolver explícitamente el tipo booleano adecuado en lugar de depender de la conversión de NTSTATUS a un tipo booleano.

Además, ocasionalmente un programa puede intentar reutilizar una variable local booleana para almacenar valores de NTSTATUS. Esta práctica suele ser propensa a errores; es mucho más seguro (y probablemente más eficaz) usar una variable de NTSTATUS independiente.