The LsarLookupSids2 method translates a batch of security principal SIDs to their name forms. It also returns the domains that these names are a part of.
NTSTATUS LsarLookupSids2( [in] LSAPR_HANDLE PolicyHandle, [in] PLSAPR_SID_ENUM_BUFFER SidEnumBuffer, [out] PLSAPR_REFERENCED_DOMAIN_LIST* ReferencedDomains, [in, out] PLSAPR_TRANSLATED_NAMES_EX TranslatedNames, [in] LSAP_LOOKUP_LEVEL LookupLevel, [in, out] unsigned long* MappedCount, [in] unsigned long LookupOptions, [in] unsigned long ClientRevision );
PolicyHandle: Context handle obtained by an LsarOpenPolicy or LsarOpenPolicy2 call.
SidEnumBuffer: Contains the SIDs to be translated. The SIDs in this structure can be that of users, groups, computers, Windows-defined well-known security principals, or domains.
ReferencedDomains: On successful return, contains the domain information for the domain to which each security principal belongs. The domain information includes a NetBIOS domain name and a domain SID for each entry in the list.
TranslatedNames: On successful return, contains the corresponding name forms for security principal SIDs in the SidEnumBuffer parameter. It MUST be ignored on input.
LookupLevel: Specifies what scopes are to be used during translation, as specified in section 2.2.16.
MappedCount: On return, contains the number of names that are translated completely to their name forms. It MUST be ignored on input.
LookupOptions: Flags that control the lookup operation. This parameter is reserved for future use and SHOULD<33> be set to 0.
ClientRevision: Version of the client, which implies the client's capabilities. For possible values and their meanings, see section 3.1.4.5.
Return Values: The following table contains a summary of the return values that an implementation MUST return, as specified by the message processing shown after the table.
|
Return value/code |
Description |
|---|---|
|
0x00000000 STATUS_SUCCESS |
The request was successfully completed. |
|
0x00000107 STATUS_SOME_NOT_MAPPED |
Some of the information to be translated has not been translated. |
|
0xC0000022 STATUS_ACCESS_DENIED |
The caller does not have the permissions to perform this operation. |
|
0xC000000D STATUS_INVALID_PARAMETER |
One of the supplied parameters was invalid. |
|
0xC0000073 STATUS_NONE_MAPPED |
None of the information to be translated has been translated. |
The behavior required when receiving an LsarLookupSids2 message MUST be identical to that when receiving an LsarLookupSids3 message, with the following exceptions:
This message is valid on non–domain controller machines as well as domain controllers.
LookupLevel values other than LsapLookupWksta are not valid if the RPC server is not a domain controller. For this condition, the RPC server MUST return an error in the return value.
The server MUST return STATUS_ACCESS_DENIED if neither of the following conditions are true: