Basta ya de indagar en otras webs porque estás al sitio indicado, tenemos la respuesta que deseas pero sin complicaciones.
Solución:
Lea todo sobre esto aquí:
Categorías de objetos
El sistema proporciona tres categorías de objetos: usuario, interfaz de dispositivo gráfico (GDI) y kernel. El sistema utiliza objetos de usuario para admitir la administración de ventanas, objetos GDI para admitir gráficos y objetos kernel para admitir la administración de memoria, la ejecución de procesos y las comunicaciones entre procesos (IPC). Para obtener información sobre la creación y el uso de un objeto específico, consulte la descripción general asociada.
y aquí:
Objetos de usuario
Los objetos de la interfaz de usuario solo admiten un identificador por objeto. Los procesos no pueden heredar ni duplicar identificadores de objetos de usuario. Los procesos en una sesión no pueden hacer referencia a un identificador de usuario en otra sesión.
Hay un límite teórico de 65.536 identificadores de usuario por sesión. Sin embargo, el número máximo de identificadores de usuario que se pueden abrir por sesión suele ser menor, ya que se ve afectado por la memoria disponible. También hay un límite predeterminado por proceso de identificadores de usuario. Para cambiar este límite, establezca el siguiente valor de registro:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWindowsUSERProcessHandleQuota
Este valor se puede establecer en un número entre 200 y 18.000.
Aquí hay un artículo “clásico” de MSDN: Dame un identificador y te mostraré un objeto
La última vez que estuve rastreando fugas de objetos de Windows (que sospecho que usted tiene), Process Explorer fue útil (¿manejar?). El panel inferior podría mostrar algunos objetos del sistema asignados, además podría hacer el simple conteo de objetos de USUARIO, GDI, etc.
El montón de escritorio, que es un grupo de memoria donde viven las “cosas” reales que representa el identificador (al menos algunos identificadores, al menos no identificadores del núcleo). A veces no se trata tanto de cuántos identificadores ha asignado sino de cuánta memoria tiene cada uno. objeto debajo de ese mango está usando. Puede depurar el montón de esta manera. Es un dolor de instalar.
Mark Russinovich es un experto en el tema. Ha escrito el libro “Windows Internals”. Afortunadamente, no solo está el libro, sino también un artículo que data del 2019-06-27.
Primero describe los objetos USER:
Los objetos USER obtienen su nombre del hecho de que representan elementos de la interfaz de usuario como escritorios, ventanas, menús, cursores, iconos y tablas aceleradoras (métodos abreviados de teclado de menú).
Y luego continúa describiendo los límites:
Una limitación básica impuesta por el gestor de ventanas es que ningún proceso puede crear más de 10.000 objetos USER.
y
Una limitación fundamental en la cantidad de objetos USER proviene del hecho de que sus identificadores eran valores de 16 bits en las primeras versiones de Windows, que eran de 16 bits. Cuando se agregó soporte de 32 bits en versiones posteriores, los identificadores de USUARIO tuvieron que permanecer restringidos a valores de 16 bits para que los procesos de 16 bits pudieran interactuar con ventanas y otros objetos de USUARIO creados por procesos de 32 bits. Por lo tanto, 65 535 (2^16) es el límite en el número total de objetos USER que se pueden crear en una sesión.
También explica el número mencionado por @Tobi:
por razones históricas, las ventanas deben tener identificadores pares, por lo que puede haber un máximo de 32 768 ventanas por sesión
Reseñas y valoraciones
Si conservas alguna perplejidad y capacidad de aumentar nuestro reseña puedes escribir un informe y con placer lo ojearemos.