Metode IBackgroundCopyJob3::SetFileACLFlags (bits2_0.h)

Menentukan informasi pemilik dan ACL untuk dipertahankan saat menggunakan SMB untuk mengunduh atau mengunggah file.

Sintaks

HRESULT SetFileACLFlags(
  [in] DWORD Flags
);

Parameter

[in] Flags

Bendera yang mengidentifikasi informasi pemilik dan ACL untuk dipertahankan saat mentransfer file menggunakan SMB. Panggilan berikutnya ke metode ini menimpa bendera sebelumnya. Tentukan 0 untuk menghapus bendera dari pekerjaan. Anda dapat menentukan kombinasi bendera berikut.

Nilai Makna
BG_COPY_FILE_OWNER
Jika diatur, informasi pemilik file dipertahankan. Jika tidak, pengguna yang memanggil metode Lengkap memiliki file .

Anda harus memiliki SeRestorePrivilege untuk mengatur bendera ini. Grup administrator berisi hak istimewa SeRestorePrivilege.

BG_COPY_FILE_GROUP
Jika diatur, informasi grup file dipertahankan. Jika tidak, BITS menggunakan grup utama pemilik pekerjaan untuk menetapkan informasi grup ke file.

Anda harus memiliki SeRestorePrivilege untuk mengatur bendera ini. Grup administrator berisi hak istimewa SeRestorePrivilege.

BG_COPY_FILE_DACL
Jika diatur, BITS menyalin ACE eksplisit dari file sumber dan ACE yang dapat diwariskan dari folder tujuan. Jika tidak, BITS menyalin ACE yang dapat diwariskan dari folder tujuan. Jika folder tujuan tidak berisi ACE yang dapat diwariskan, BITS menggunakan DACL default dari akun pemilik.
BG_COPY_FILE_SACL
Jika diatur, BITS menyalin ACE eksplisit dari file sumber dan ACE yang dapat diwariskan dari folder tujuan. Jika tidak, BITS menyalin ACE yang dapat diwariskan dari folder tujuan.

Anda harus memiliki SeSecurityPrivilege pada komputer lokal dan jarak jauh untuk mengatur bendera ini. Grup administrator berisi hak istimewa SeSecurityPrivilege.

BG_COPY_FILE_ALL
Jika diatur, BITS menyalin informasi pemilik dan ACL. Ini sama dengan mengatur semua bendera satu per satu.

Nilai kembali

Metode ini mengembalikan nilai HRESULT berikut, serta yang lain.

Menampilkan kode Deskripsi
S_OK
Berhasil mengatur bendera.
BG_E_INVALID_STATE
Anda harus memanggil metode ini sebelum pekerjaan beralih ke status BG_JOB_STATE_TRANSFERRED .
E_INVALIDARG
Parameter Bendera berisi bendera yang tidak ada dalam daftar.

Keterangan

Bendera ini berlaku untuk nama file jarak jauh yang menentukan protokol SMB. BITS mengabaikan bendera untuk transfer HTTP.

BITS menyebarkan stempel waktu file dan atribut (bukan atribut yang diperluas) untuk file SMB.

BITS menerapkan informasi pemilik dan ACL ke file pada saat transfer file selesai, bukan ketika membuat file transfer sementara. BITS tidak menentukan deskriptor keamanan saat membuat file transfer sementara (file mewarisi informasi ACL dari direktori tujuan). Jika data yang ditransfer sensitif, aplikasi harus menentukan ACL yang sesuai pada direktori tujuan untuk mencegah akses yang tidak sah.

Untuk memastikan pemilik dan informasi ACL yang tepat diatur pada semua file dalam pekerjaan, panggil metode ini setelah Anda membuat pekerjaan dan sebelum memanggil metode IBackgroundCopyJob::Resume . Jika tidak, file yang ditransfer sebelum bendera ditetapkan tidak akan berisi informasi pemilik dan ACL yang sesuai.

Metode ini dimodelkan setelah perintah XCopy DOS.

Informasi pemilik dan ACL tidak dipertahankan jika Anda mengunduh ke sistem file FAT.

Jika pengguna tidak memiliki hak istimewa di komputer lokal dan jarak jauh untuk menyalin informasi pemilik atau ACL, BITS menempatkan pekerjaan dalam status kesalahan sementara dan mengatur kode kesalahan ke E_ACCESSDENIED.

Contoh

Contoh berikut menunjukkan cara memanggil metode SetFileACLFlags untuk menentukan pemilik dan informasi ACL apa yang harus dipertahankan dengan file yang diunduh BITS. Contoh mengasumsikan variabel IBackgroundCopyJob , pJob, valid, menunjuk ke pekerjaan baru, dan ditangguhkan.

     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.
     }

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista, Windows XP dengan SP2,KB842773 di Windows Server 2003, dan Windows XP
Server minimum yang didukung Windows Server 2008, Windows Server 2003 dengan SP1
Target Platform Windows
Header bits2_0.h (termasuk Bits.h)
Pustaka Bits.lib
DLL BitsPrx3.dll

Lihat juga

IBackgroundCopyJob3

IBackgroundCopyJob3::GetFileACLFlags