Funzione SecLookupAccountSid (ntifs.h)
SecLookupAccountSid accetta un ID di sicurezza (SID) come input. Recupera il nome dell'account per questo SID e il nome del primo dominio in cui viene trovato questo SID.
Sintassi
KSECDDDECLSPEC NTSTATUS SEC_ENTRY SecLookupAccountSid(
[in] PSID Sid,
[out] PULONG NameSize,
[in, out] PUNICODE_STRING NameBuffer,
[out] PULONG DomainSize,
[out, optional] PUNICODE_STRING DomainBuffer,
[out] PSID_NAME_USE NameUse
);
Parametri
[in] Sid
Puntatore al SID da cercare.
[out] NameSize
Puntatore a una variabile che specifica le dimensioni del NameBuffer. In input, questo valore specifica le dimensioni in byte dell'input NameBuffer. Se la funzione ha esito negativo perché il buffer è troppo piccolo, questa variabile riceve le dimensioni del buffer necessarie. In caso di esito positivo, questa variabile contiene le dimensioni dell'NameBuffer restituito.
[in, out] NameBuffer
Puntatore a un buffer che riceve il nome dell'account associato all'Sid. Se questo parametro è NULL, NameSize sarà zero.
[out] DomainSize
Puntatore a ULONG che specifica le dimensioni del parametro DomainBuffer
[out, optional] DomainBuffer
Puntatore a un buffer che riceve il nome del primo dominio in cui viene trovato questo SID.
[out] NameUse
Puntatore a un tipo enumerato SID_NAME_USE che riceve il tipo di account.
Valore restituito
secLookupAccountSid restituisce STATUS_SUCCESS in caso di esito positivo o uno dei codici di errore seguenti in caso di errore.
Codice restituito | Descrizione |
---|---|
SEC_E_INTERNAL_ERROR | Si è verificato un errore interno durante il tentativo di connessione all'autorità di sistema locale (LSA) o alla chiamata di procedura locale (LPC) al provider di sicurezza non riuscito. |
STATUS_ACCESS_DENIED | L'ID del processo associato al thread attualmente in esecuzione non corrisponde all'ID del processo corrente. |
STATUS_BUFFER_TOO_SMALL | Le dimensioni del buffer per il NameBuffer o il parametro ReferencedDomain era troppo piccolo. |
STATUS_INVALID_PARAMETER | La lunghezza del parametro Name ha superato la lunghezza consentita in un messaggio all'autorità di sistema locale .LSA. |
STATUS_NO_MEMORY | Non è stato possibile allocare memoria sufficiente per un buffer interno temporaneo usato da questa funzione. |
STATUS_NONE_MAPPED | Impossibile trovare il parametro sid |
STATUS_PROCESS_IS_TERMINATING | Questo processo è stato terminato in modo che non sia possibile stabilire una connessione LPC (Local Procedure Call). |
Osservazioni
SecLookupAccountSid tenta di trovare un nome per il SID specificato controllando prima un elenco di SID noti. Se il SID fornito non corrisponde a un SID noto, la funzione controlla gli account locali predefiniti e definiti in modo amministrativo. Successivamente, la funzione controlla il dominio primario. Gli identificatori di sicurezza non riconosciuti dal dominio primario vengono controllati rispetto ai domini attendibili che corrispondono ai prefissi SID.
Se la funzione non riesce a trovare un nome di account per il SID, SecLookupAccountSid ha esito negativo. Ciò può verificarsi se un timeout di rete impedisce alla funzione di trovare il nome. Si verifica anche per i SID che non hanno un nome di account corrispondente, ad esempio un SID di accesso che identifica una sessione di accesso.
Oltre a cercare i SID per gli account locali, gli account di dominio locali e gli account di dominio esplicitamente attendibili, SecLookupAccountSid può cercare SID per qualsiasi account in qualsiasi dominio della foresta, inclusi i SID visualizzati solo nel campo SIDhistory di un account nella foresta. Il campo SIDhistory archivia i SID precedenti di un account spostato da un altro dominio. Per cercare un SID, SecLookupAccountSid esegue una query sul catalogo globale della foresta.
secLookupAccountSid viene esportato dal driver ksecdd, che implementa questa funzione usando i servizi helper in modalità utente. Di conseguenza, l'uso di questa funzione all'interno di file system deve rispettare le normali regole per la comunicazione con i servizi in modalità utente. i SecLookupAccountSid non possono essere usati durante l'I/O del file di paging.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows XP |
piattaforma di destinazione | Universale |
intestazione |
ntifs.h (include Ntifs.h) |
libreria |
Ksecdd.lib |
IRQL | <= APC_LEVEL |