Funzione TreeResetNamedSecurityInfoA (aclapi.h)

Questa versione di questa funzione non è supportata. La versione a caratteri wide di questa funzione, TreeResetNamedSecurityInfoW, è supportata.

Sintassi

DWORD TreeResetNamedSecurityInfoA(
  [in]           LPSTR                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 una stringa con terminazione null 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 di 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 SE_REGISTRY_KEY e SE_FILE_OBJECT, rispettivamente 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 SECURITY_INFORMATION bit.

[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 che identifica il gruppo primario dell'oggetto. Il parametro SecurityInfo deve includere il flag di GROUP_SECURITY_INFORMATION. Per impostare il gruppo, il chiamante deve avere WRITE_OWNER accesso a ogni oggetto, incluso l'oggetto radice. Se non si imposta il SID del gruppo primario, questo parametro può essere NULL.

[in, optional] pDacl

Puntatore a una struttura ACL ( Access Control List ) che rappresenta il nuovo daCL per gli oggetti da reimpostare. Il parametro SecurityInfo deve includere il flag di DACL_SECURITY_INFORMATION. Il chiamante deve avere READ_CONTROL e WRITE_DAC l'accesso a ogni oggetto, incluso l'oggetto radice. Se non si imposta l'elenco dati, questo parametro può essere NULL.

[in, optional] pSacl

Puntatore a una struttura ACL che rappresenta il nuovo SACL per gli oggetti da reimpostare. Il parametro SecurityInfo deve includere uno dei flag seguenti: SACL_SECURITY_INFORMATION, LABEL_SECURITY_INFORMATION, ATTRIBUTE_SECURITY_INFORMATION, SCOPE_SECURITY_INFORMATION o BACKUP_SECURITY_INFORMATION. Se si imposta SACL_SECURITY_INFORMATION o SCOPE_SECURITY_INFORMATION, il chiamante deve avere il privilegio SE_SECURITY_NAME abilitato. Se non si imposta SACL, questo parametro può essere NULL.

[in] KeepExplicit

Valore booleano che definisce se gli ACL definiti in modo esplicito vengono mantenuti o eliminati per l'albero secondario. Se KeepExplicit è TRUE, gli ACL definiti in modo esplicito vengono mantenuti per ogni sottoalbero DACL e SACL e gli ACL ereditati vengono sostituiti dagli ACL ereditati da pDacl e pSacl. Se KeepExplicit è FALSE, gli ACL definiti in modo esplicito per ogni sottoalbero DACL 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 avanzamento è:

#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 sugli errori durante l'elaborazione dei nodi. Il chiamante specifica la funzione di stato in fnProgress e durante l'operazione ad albero, TreeResetNamedSecurityInfo passa il nome dell'ultimo oggetto elaborato, lo stato di errore di tale operazione e il valore corrente PROG_INVOKE_SETTING. Il chiamante può modificare il valore 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.

Commenti

L'impostazione di un proprietario NULL, un gruppo, un daCL o SACL non è supportata da questa funzione.

Se il chiamante non contiene i privilegi e le autorizzazioni appropriate per supportare il proprietario, il gruppo, il gruppo, il daCL e gli aggiornamenti SACL, non vengono eseguiti nessuno degli aggiornamenti.

Questa funzione è simile alla funzione TreeSetNamedSecurityInfo :

  • Se il parametro KeepExplicit di TreeResetNamedSecurityInfo è impostato su TRUE, la funzione equivale a TreeSetNamedSecurityInfo con il parametro dwAction impostato su TREE_SEC_INFO_RESET_KEEP_EXPLICIT.
  • Se il parametro KeepExplicit di TreeResetNamedSecurityInfo è impostato su FALSE, la funzione equivale a TreeSetNamedSecurityInfo con il parametro dwAction 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 preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione aclapi.h
Libreria Advapi32.lib
DLL Advapi32.dll