¿Qué significa el código HRESULT 0x80030009 (STG_E_INVALIDPOINTER)?

 
Anterior Siguiente
STG_E_INSUFFICIENTMEMORY STG_E_NOMOREFILES

STG_E_INVALIDPOINTER

Qué significa STG_E_INVALIDPOINTER

STG_E_INVALIDPOINTER corresponde al HRESULT 0x80030009. La llamada recibió un puntero o buffer que no cumple el contrato de la API. La descripción de Windows para este valor es «Puntero no válido.» y su origen se clasifica como winerror.h.

Es un fallo de parámetros/lifetime, no una señal para cambiar el archivo. Suele aparecer con buffers nulos donde no se permiten, memoria ya liberada o estructuras de tamaño incorrecto. Un wrapper puede traducir este HRESULT a una excepción genérica. En telemetría conviene guardar también el valor nativo y la operación COM antes de cruzar esa capa.

Comprobaciones específicas

  • Captura la firma de la llamada y los tamaños/contadores asociados a cada buffer.
  • Valida que la memoria permanezca viva durante toda llamada y que la estructura use el layout esperado por esa ABI.
  • En wrappers, revisa conversiones de string y ownership para evitar punteros temporales.

Cómo volver a un estado válido

Corrige el caller y sus contratos de memoria antes de volver a ejecutar. No manipules el storage para compensar un puntero inválido.

Referencias técnicas


¿Buscas un código diferente? Buscar otro código de estado o error.