Compartir a través de


Identificadores e identificadores de subprocesos

Cuando la función CreateThread o CreateRemoteThread crean un nuevo subproceso, se devuelve un identificador para el subproceso. De forma predeterminada, este identificador tiene derechos de acceso completos y, sujeto a la comprobación de acceso de seguridad, se puede usar en cualquiera de las funciones que aceptan un identificador de subproceso. Los procesos secundarios pueden heredar este identificador, en función de la marca de herencia especificada cuando se crea. DuplicateHandle puede duplicar el identificador, lo que le permite crear un identificador de subproceso con un subconjunto de los derechos de acceso. El identificador es válido hasta que se cierra, incluso después de que se haya terminado el subproceso que representa.

Las funciones CreateThread y CreateRemoteThread también devuelven un identificador que identifica de forma única el subproceso en todo el sistema. Un subproceso puede usar la función GetCurrentThreadId para obtener su propio identificador de subproceso. Los identificadores son válidos desde el momento en que se crea el subproceso hasta que finaliza el subproceso. Tenga en cuenta que ningún identificador de subproceso será 0.

Si tiene un identificador de subproceso, puede obtener el identificador de subproceso llamando a la función OpenThread . OpenThread le permite especificar los derechos de acceso del identificador y si se puede heredar.

Un subproceso puede usar la función GetCurrentThread para recuperar un pseudo handle en su propio objeto de subproceso. Este pseudo handle solo es válido para el proceso de llamada; no se puede heredar ni duplicar para su uso por otros procesos. Para obtener el identificador real del subproceso, dado un pseudo identificador, use la función DuplicateHandle .

Para enumerar los subprocesos de un proceso, use las funciones Thread32First y Thread32Next .