Condividi tramite


Metodo IBackgroundCopyJob3::SetFileACLFlags (bits2_0.h)

Specifica le informazioni sul proprietario e sull'elenco di controllo di accesso da gestire quando si usa SMB per scaricare o caricare un file.

Sintassi

HRESULT SetFileACLFlags(
  [in] DWORD Flags
);

Parametri

[in] Flags

Flag che identificano le informazioni sul proprietario e sull'elenco di controllo di accesso da mantenere durante il trasferimento di un file tramite SMB. Le chiamate successive a questo metodo sovrascrivono i flag precedenti. Specificare 0 per rimuovere i flag dal processo. È possibile specificare qualsiasi combinazione dei flag seguenti.

Valore Significato
BG_COPY_FILE_OWNER
Se impostata, le informazioni sul proprietario del file vengono mantenute. In caso contrario, l'utente che chiama il metodo Complete è proprietario del file.

Per impostare questo flag, è necessario disporre di SeRestorePrivilege. Il gruppo administrators contiene il privilegio SeRestorePrivilege.

BG_COPY_FILE_GROUP
Se impostata, le informazioni sul gruppo del file vengono mantenute. In caso contrario, BITS usa il gruppo primario del proprietario del processo per assegnare le informazioni sul gruppo al file.

Per impostare questo flag, è necessario disporre di SeRestorePrivilege. Il gruppo administrators contiene il privilegio SeRestorePrivilege.

BG_COPY_FILE_DACL
Se impostato, BITS copia gli ACL espliciti dal file di origine e gli ACL ereditabili dalla cartella di destinazione. In caso contrario, BITS copia gli ACL ereditabili dalla cartella di destinazione. Se la cartella di destinazione non contiene ACL ereditabili, BITS usa l'elenco DACL predefinito dall'account del proprietario.
BG_COPY_FILE_SACL
Se impostato, BITS copia gli ACL espliciti dal file di origine e gli ACL ereditabili dalla cartella di destinazione. In caso contrario, BITS copia gli ACL ereditabili dalla cartella di destinazione.

Per impostare questo flag, è necessario disporre di SeSecurityPrivilege nei computer locali e remoti. Il gruppo administrators contiene il privilegio SeSecurityPrivilege.

BG_COPY_FILE_ALL
Se impostato, BITS copia le informazioni sul proprietario e sull'elenco di controllo di accesso. Equivale all'impostazione di tutti i flag singolarmente.

Valore restituito

Questo metodo restituisce i valori HRESULT seguenti, nonché altri.

Codice restituito Descrizione
S_OK
Impostare correttamente i flag.
BG_E_INVALID_STATE
È necessario chiamare questo metodo prima che il processo passi allo stato BG_JOB_STATE_TRANSFERRED .
E_INVALIDARG
Il parametro Flags contiene un flag non incluso nell'elenco.

Commenti

Questi flag si applicano ai nomi di file remoti che specificano il protocollo SMB. BITS ignora i flag per i trasferimenti HTTP.

BITS propaga i timestamp e gli attributi dei file (non attributi estesi) per i file SMB.

BITS applica le informazioni di proprietario e ACL al file al momento del completamento del trasferimento del file, non quando crea il file di trasferimento temporaneo. BITS non specifica un descrittore di sicurezza quando crea il file di trasferimento temporaneo (il file eredita le informazioni ACL dalla directory di destinazione). Se i dati trasferiti sono sensibili, l'applicazione deve specificare un elenco di controllo di accesso appropriato nella directory di destinazione per impedire l'accesso non autorizzato.

Per assicurarsi che le informazioni di proprietario e ACL appropriate siano impostate su tutti i file del processo, chiamare questo metodo dopo aver creato il processo e prima di chiamare il metodo IBackgroundCopyJob::Resume . In caso contrario, i file trasferiti prima dell'impostazione dei flag non conterranno le informazioni appropriate sul proprietario e sull'elenco di controllo di accesso.

Questo metodo viene modellato dopo il comando DOS di XCopy.

Le informazioni sul proprietario e sull'elenco di controllo di accesso non vengono mantenute se si esegue il download in un file system FAT.

Se l'utente non dispone dei privilegi per i computer locali e remoti per copiare le informazioni sul proprietario o sull'elenco di controllo di accesso, BITS inserisce il processo in uno stato di errore temporaneo e imposta il codice di errore su E_ACCESSDENIED.

Esempio

Nell'esempio seguente viene illustrato come chiamare il metodo SetFileACLFlags per specificare le informazioni sul proprietario e sull'elenco di controllo di accesso da mantenere con i file scaricati da BITS. L'esempio presuppone che la variabile IBackgroundCopyJob , pJob, sia valida, punti a un nuovo processo e sia sospesa.

     IBackgroundCopyJob *pJob;
     IBackgroundCopyJob3 *pJob3 = NULL;

     //Need to query the IBackgroundCopyJob interface for an IBackgroundCopyJob3
     //interface pointer. The IBackgroundCopyJob3 interface contains the SetACLFlags method.
     hr = pJob->QueryInterface(__uuidof( IBackgroundCopyJob3 ), (void**)&pJob3;);
     if (S_OK == hr)
     {
          pJob->Release(); //No longer need the IBackgoundCopyJob interface pointer.

          //Copy the group and DACL information for each file.
          hr = pJob3->SetACLFlags(BG_COPY_FILE_GROUP | BG_COPY_FILE_DACL);
          if (FAILED(hr))
          {
               //Handle error.
          }

          ... //Add one or more files and resume the job.
          pJob3->Resume();

          //When done, release the interface pointer.
          pJob3->Release();
     }
     else
     {
          //Handle error. QueryInterface will return E_NOINTERFACE if the version of BITS
          //running on the computer is less than BITS 2.0.
     }

Requisiti

Requisito Valore
Client minimo supportato Windows Vista, Windows XP con SP2,KB842773 in Windows Server 2003 e Windows XP
Server minimo supportato Windows Server 2008, Windows Server 2003 con SP1
Piattaforma di destinazione Windows
Intestazione bits2_0.h (include Bits.h)
Libreria Bits.lib
DLL BitsPrx3.dll

Vedi anche

IBackgroundCopyJob3

IBackgroundCopyJob3::GetFileACLFlags