Funzione TreeResetNamedSecurityInfoW (aclapi.h)
La funzione TreeResetNamedSecurityInfo reimposta le informazioni di sicurezza specificate nel descrittore di sicurezza di un albero di oggetti specificato. Questa funzione consente la propagazione di un elenco di controllo di accesso discrezionale (DACL) o di qualsiasi elemento nell'elenco di controllo di accesso di sistema (SACL) in un intero albero. Questa funzione supporta una funzione di callback per tenere traccia dello stato di avanzamento dell'operazione di albero.
Sintassi
DWORD TreeResetNamedSecurityInfoW(
[in] LPWSTR pObjectName,
[in] SE_OBJECT_TYPE ObjectType,
[in] SECURITY_INFORMATION SecurityInfo,
[in, optional] PSID pOwner,
[in, optional] PSID pGroup,
[in, optional] PACL pDacl,
[in, optional] PACL pSacl,
[in] BOOL KeepExplicit,
[in, optional] FN_PROGRESS fnProgress,
[in] PROG_INVOKE_SETTING ProgressInvokeSetting,
[in, optional] PVOID Args
);
Parametri
[in] pObjectName
Puntatore a un nullstringa con terminazione che specifica il nome dell'oggetto nodo radice per gli oggetti che devono ricevere informazioni di sicurezza aggiornate. Gli oggetti supportati sono chiavi del Registro di sistema e oggetti file. Per le descrizioni dei formati stringa per i diversi tipi di oggetto, vedere SE_OBJECT_TYPE.
[in] ObjectType
Valore dell'enumerazione SE_OBJECT_TYPE che indica il tipo di oggetto denominato dal parametro pObjectName. I valori supportati sono rispettivamente SE_REGISTRY_KEY e SE_FILE_OBJECT, per le chiavi del Registro di sistema e gli oggetti file.
[in] SecurityInfo
Set di flag di bit che indicano il tipo di informazioni di sicurezza da reimpostare. Questo parametro può essere una combinazione dei flag di bit SECURITY_INFORMATION.
[in, optional] pOwner
Puntatore a una struttura SID che identifica il proprietario dell'oggetto. Il SID deve essere uno che può essere assegnato come SID proprietario di un descrittore di sicurezza. Il parametro SecurityInfo deve includere il flag di OWNER_SECURITY_INFORMATION. Per impostare il proprietario, il chiamante deve avere WRITE_OWNER accesso a ogni oggetto, incluso l'oggetto radice. Se non si imposta il SID proprietario, questo parametro può essere NULL.
[in, optional] pGroup
Puntatore a una struttura SID
[in, optional] pDacl
Puntatore a una struttura elenco di controllo di accesso (ACL) che rappresenta il nuovo DACL per gli oggetti da reimpostare. Il parametro SecurityInfo
[in, optional] pSacl
Puntatore a una struttura ACL che rappresenta il nuovo sacl per gli oggetti da reimpostare. Il parametro SecurityInfo
[in] KeepExplicit
Valore booleano che definisce se gli ACL definiti in modo esplicito vengono mantenuti o eliminati per il sottoalbero. Se keepExplicit è TRUE, gli ACL definiti in modo esplicito vengono mantenuti per ogni DACL e SACL del sottoalbero e gli ACL ereditati vengono sostituiti dagli ACL ereditati da pDacl e pSacl. Se keepExplicit è FALSE, gli ACL definiti in modo esplicito per ogni DACL del sottoalbero e SACL vengono eliminati prima che gli ACL ereditati vengano sostituiti dagli ACL ereditati da pDacl e pSacl.
[in, optional] fnProgress
Puntatore alla funzione usata per tenere traccia dello stato di avanzamento della funzione TreeResetNamedSecurityInfo. Il prototipo della funzione di stato è:
#include <windows.h>
#include <Aclapi.h>
typedef VOID (*FN_PROGRESS) (
IN LPWSTR pObjectName, // Name of object just processed
IN DWORD Status, // Status of operation on object
IN OUT PPROG_INVOKE_SETTING pInvokeSetting, // When to set
IN PVOID Args, // Caller specific data
IN BOOL SecuritySet // Whether security was set
);
La funzione di stato fornisce al chiamante informazioni sullo stato di avanzamento e sull'errore durante l'elaborazione dei nodi. Il chiamante specifica la funzione di stato in fnProgresse durante l'operazione ad albero TreeResetNamedSecurityInfo passa il nome dell'ultimo oggetto elaborato, lo stato di errore di tale operazione e il valore PROG_INVOKE_SETTING corrente. Il chiamante può modificare il valore di PROG_INVOKE_SETTING usando pInvokeSetting.
Se non viene usata alcuna funzione di stato, impostare questo parametro su NULL.
[in] ProgressInvokeSetting
Valore dell'enumerazione PROG_INVOKE_SETTING che specifica l'impostazione iniziale per la funzione di stato.
[in, optional] Args
Puntatore a un VOID per gli argomenti della funzione di stato specificati dal chiamante.
Valore restituito
Se la funzione ha esito positivo, la funzione restituisce ERROR_SUCCESS.
Se la funzione ha esito negativo, restituisce un codice di errore definito in WinError.h.
Osservazioni
L'impostazione di un NULL proprietario, gruppo, DACL o SACL non è supportata da questa funzione.
Se il chiamante non contiene i privilegi e le autorizzazioni appropriate per supportare gli aggiornamenti di proprietario, gruppo, DACL e SACL richiesti, non vengono eseguiti nessuno degli aggiornamenti.
Questa funzione è simile alla funzione
- Se il parametro
KeepExplicit di TreeResetNamedSecurityInfo è impostato suTRUE , la funzione equivale aTreeSetNamedSecurityInfo con il parametro dwAction impostato su TREE_SEC_INFO_RESET_KEEP_EXPLICIT. - Se il parametro
KeepExplicit diTreeResetNamedSecurityInfo è impostato suFALSE , la funzione equivale aTreeSetNamedSecurityInfo con il parametrodwAction impostato su TREE_SEC_INFO_RESET.
Nota
L'intestazione aclapi.h definisce TreeResetNamedSecurityInfo come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows XP [solo app desktop] |
server minimo supportato | Windows Server 2003 [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
aclapi.h |
libreria |
Advapi32.lib |
dll | Advapi32.dll |