¿Qué significa el código NTSTATUS 0xC0000035 (STATUS_OBJECT_NAME_COLLISION)?

 
Anterior Siguiente
STATUS_OBJECT_NAME_NOT_FOUND STATUS_PORT_DO_NOT_DISTURB

STATUS_OBJECT_NAME_COLLISION

Qué significa STATUS_OBJECT_NAME_COLLISION

La solicitud pedía crear un objeto con un nombre que debía ser nuevo, pero el namespace ya contiene una entrada con ese nombre. En archivos suele depender de la disposición de creación: create-only debe fallar si el archivo existe, mientras que un flujo open-or-create puede abrirlo legítimamente.

Una colisión no es una sharing violation. El objeto existente puede estar cerrado y ser accesible; el conflicto es que la operación exigía unicidad. Tampoco conviene hacer primero «exists?» y después «create»: entre ambas llamadas otro actor puede ganar la carrera. La creación atómica es la prueba correcta.

Qué comprobar

  • Creation disposition y regla de negocio esperada para ese nombre.
  • Si el objeto existente tiene el tipo y propietario que el caller espera reutilizar.
  • Generadores de nombres y carreras entre procesos o threads.
  • Expectativas explícitas de archivo frente a directorio.

Referencias técnicas


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