Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Especifica as informações de proprietário e ACL a serem mantidas ao usar o SMB para baixar ou carregar um arquivo.
Sintaxe
HRESULT SetFileACLFlags(
[in] DWORD Flags
);
Parâmetros
[in] Flags
Sinalizadores que identificam o proprietário e as informações de ACL a serem mantidas ao transferir um arquivo usando SMB. Chamadas subsequentes para esse método substituem os sinalizadores anteriores. Especifique 0 para remover os sinalizadores do trabalho. Você pode especificar qualquer combinação dos sinalizadores a seguir.
| Value | Meaning |
|---|---|
|
Se definido, as informações de proprietário do arquivo serão mantidas. Caso contrário, o usuário que chama o método Complete é o proprietário do arquivo.
Você deve ter SeRestorePrivilege para definir esse sinalizador. O grupo de administradores contém o privilégio SeRestorePrivilege. |
|
Se definido, as informações de grupo do arquivo serão mantidas. Caso contrário, o BITS usará o grupo primário do proprietário do trabalho para atribuir as informações do grupo ao arquivo.
Você deve ter SeRestorePrivilege para definir esse sinalizador. O grupo de administradores contém o privilégio SeRestorePrivilege. |
|
Se definido, o BITS copia os ACEs explícitos do arquivo de origem e ACEs herdáveis da pasta de destino. Caso contrário, o BITS copia os ACEs herdáveis da pasta de destino. Se a pasta de destino não contiver ACEs herdáveis, o BITS usará a DACL padrão da conta do proprietário. |
|
Se definido, o BITS copia os ACEs explícitos do arquivo de origem e ACEs herdáveis da pasta de destino.
Caso contrário, o BITS copia os ACEs herdáveis da pasta de destino.
Você deve ter SeSecurityPrivilege nos computadores locais e remotos para definir esse sinalizador. O grupo de administradores contém o privilégio SeSecurityPrivilege. |
|
Se definido, o BITS copia as informações do proprietário e da ACL. Isso é o mesmo que definir todos os sinalizadores individualmente. |
Valor de retorno
Esse método retorna os seguintes valores HRESULT , bem como outros.
| Código de retorno | Description |
|---|---|
|
Defina os sinalizadores com êxito. |
|
Você deve chamar esse método antes que o trabalho faça a transição para o estado BG_JOB_STATE_TRANSFERRED . |
|
O parâmetro Flags contém um sinalizador que não está na lista. |
Observações
Esses sinalizadores se aplicam a nomes de arquivos remotos que especificam o protocolo SMB. O BITS ignora os sinalizadores para transferências HTTP.
O BITS propaga os carimbos de data/hora do arquivo e os atributos (não atributos estendidos) para arquivos SMB.
O BITS aplica as informações de proprietário e ACL ao arquivo no momento em que a transferência de arquivo é concluída, não quando ele cria o arquivo de transferência temporário. O BITS não especifica um descritor de segurança quando cria o arquivo de transferência temporária (o arquivo herda as informações de ACL do diretório de destino). Se os dados transferidos forem confidenciais, o aplicativo deverá especificar uma ACL apropriada no diretório de destino para impedir o acesso não autorizado.
Para garantir que as informações adequadas de proprietário e ACL sejam definidas em todos os arquivos no trabalho, chame esse método depois de criar o trabalho e antes de chamar o método IBackgroundCopyJob::Resume . Caso contrário, os arquivos transferidos antes de os sinalizadores serem definidos não conterão as informações apropriadas de proprietário e ACL.
Esse método é modelado após o comando XCopy DOS.
As informações de proprietário e ACL não serão mantidas se você baixar para um sistema de arquivos FAT.
Se o usuário não tiver privilégios nos computadores locais e remotos para copiar as informações do proprietário ou da ACL, o BITS colocará o trabalho em um estado de erro transitório e definirá o código de erro como E_ACCESSDENIED.
Exemplos
O exemplo a seguir mostra como chamar o método SetFileACLFlags para especificar quais informações de proprietário e ACL manter com os arquivos baixados pelo BITS. O exemplo pressupõe que a variável IBackgroundCopyJob , pJob, é válida, aponta para um novo trabalho e está suspensa.
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.
}
Requirements
| Requirement | Value |
|---|---|
| Cliente mínimo suportado | Windows Vista, Windows XP com SP2,KB842773 no Windows Server 2003 e Windows XP |
| Servidor mínimo compatível | Windows Server 2008, Windows Server 2003 com SP1 |
| da Plataforma de Destino | Windows |
| Header | bits2_0.h (incluir Bits.h) |
| Library | Bits.lib |
| de DLL | BitsPrx3.dll |