Función LsaLookupNames2 (ntsecapi.h)
La función LsaLookupNames2 recupera los identificadores de seguridad (SID) para los nombres de cuenta especificados. LsaLookupNames2 puede buscar el SID para cualquier cuenta de cualquier dominio de un bosque de Windows.
La función LsaLookupNames se sustituye por la función LsaLookupNames2 . Las aplicaciones deben usar la función LsaLookupNames2 para garantizar la compatibilidad futura.
Esta función difiere de la función LsaLookupNames en que LsaLookupNames2 devuelve cada SID como un único elemento, mientras que LsaLookupNames divide cada SID en un par RID/dominio.
Sintaxis
NTSTATUS LsaLookupNames2(
[in] LSA_HANDLE PolicyHandle,
[in] ULONG Flags,
[in] ULONG Count,
[in] PLSA_UNICODE_STRING Names,
[out] PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
[out] PLSA_TRANSLATED_SID2 *Sids
);
Parámetros
[in] PolicyHandle
Identificador de un objeto Policy . El identificador debe tener el derecho de acceso POLICY_LOOKUP_NAMES. Para obtener más información, vea Apertura de un identificador de objeto de directiva.
[in] Flags
Valores que controlan el comportamiento de esta función. Actualmente se define el siguiente valor.
[in] Count
Especifica el número de nombres de la matriz Names . También es el número de entradas devueltas en la matriz Sids .
[in] Names
Puntero a una matriz de estructuras de LSA_UNICODE_STRING que contienen los nombres que se van a buscar. Estas cadenas pueden ser los nombres de las cuentas de usuario, grupo o grupo local, o los nombres de los dominios. Los nombres de dominio pueden ser nombres de dominio DNS o nombres de dominio NetBIOS.
Para obtener más información sobre el formato de las cadenas de nombre, vea Comentarios.
[out] ReferencedDomains
Recibe un puntero a una estructura LSA_REFERENCED_DOMAIN_LIST . El miembro Domains de esta estructura es una matriz que contiene una entrada para cada dominio en el que se encontró un nombre. El miembro DomainIndex de cada entrada de la matriz Sids es el índice de la entrada de la matriz Domains para el dominio en el que se encontró el nombre.
Cuando haya terminado de usar el puntero devuelto, libere mediante una llamada a .
Función LsaFreeMemory . Esta memoria debe liberarse incluso cuando se produce un error en la función con los códigos de error STATUS_NONE_MAPPED o STATUS_SOME_NOT_MAPPED
[out] Sids
Recibe un puntero a una matriz de estructuras de LSA_TRANSLATED_SID2 . Cada entrada de la matriz Sids contiene la información del SID para la entrada correspondiente en la matriz Names .
Cuando haya terminado de usar el puntero devuelto, libere mediante una llamada a .
Función LsaFreeMemory . Esta memoria debe liberarse incluso cuando se produce un error en la función con los códigos de error STATUS_NONE_MAPPED o STATUS_SOME_NOT_MAPPED
Valor devuelto
Si la función se ejecuta correctamente, la función devuelve uno de los siguientes valores NTSTATUS .
Valor | Descripción |
---|---|
|
Algunos de los nombres no se pudieron traducir. Se trata de un valor devuelto de nivel informativo. |
|
Todos los nombres se encontraron y traduciron correctamente. |
Si se produce un error en la función, el valor devuelto es el siguiente valor NTSTATUS o uno de los valores devueltos de la función de directiva LSA.
Valor | Descripción |
---|---|
|
Ninguno de los nombres se traducía. |
Use la función LsaNtStatusToWinError para convertir el código NTSTATUS en un código de error de Windows.
Comentarios
Use nombres de cuenta completos (por ejemplo, DomainName\UserName) en lugar de nombres aislados (por ejemplo, UserName). Los nombres completos no son ambiguos y proporcionan un mejor rendimiento cuando se realiza la búsqueda. Esta función también admite nombres DNS completos (por ejemplo, ejemplo.Ejemplo.com\UserName) y nombres principales de usuario (UPN) (por ejemplo,Ejemplo de alguien@.com).
La traducción de nombres aislados presenta la posibilidad de colisiones de nombres porque el mismo nombre se puede usar en varios dominios. La función LsaLookupNames2 usa el siguiente algoritmo para traducir nombres aislados.
Para traducir nombres aislados
- Si el nombre es un nombre conocido, como Local o Interactivo, la función devuelve el identificador de seguridad conocido (SID) correspondiente.
- Si el nombre es el nombre del dominio integrado, la función devuelve el SID de ese dominio.
- Si el nombre es el nombre del dominio de cuenta, la función devuelve el SID de ese dominio.
- Si el nombre es el nombre del dominio principal, la función devuelve el SID de ese dominio.
- Si el nombre es uno de los nombres del dominio de confianza, la función devuelve el SID de ese dominio.
- Si el nombre es una cuenta de usuario, grupo o grupo local en el dominio integrado, la función devuelve el SID de esa cuenta.
- Si el nombre es una cuenta de usuario, grupo o grupo local en el dominio de cuenta del sistema local, la función devuelve el SID de esa cuenta.
- Si el nombre es un usuario, un grupo o un grupo local en el dominio principal, la función devuelve el SID de esa cuenta.
- Después de buscar en el dominio principal, la función busca en cada uno de los dominios de confianza del dominio principal.
- De lo contrario, el nombre no se traduce.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | ntsecapi.h |
Library | Advapi32.lib |
Archivo DLL | Advapi32.dll |