Share via


IBackgroundCopyJob3::SetFileACLFlags-Methode (bits2_0.h)

Gibt die Besitzer- und ACL-Informationen an, die verwaltet werden sollen, wenn SMB zum Herunterladen oder Hochladen einer Datei verwendet wird.

Syntax

HRESULT SetFileACLFlags(
  [in] DWORD Flags
);

Parameter

[in] Flags

Flags, die den Besitzer und die ACL-Informationen identifizieren, die beim Übertragen einer Datei mit SMB verwaltet werden sollen. Nachfolgende Aufrufe dieser Methode überschreiben die vorherigen Flags. Geben Sie 0 an, um die Flags aus dem Auftrag zu entfernen. Sie können eine beliebige Kombination der folgenden Flags angeben.

Wert Bedeutung
BG_COPY_FILE_OWNER
Wenn festgelegt, werden die Besitzerinformationen der Datei beibehalten. Andernfalls besitzt der Benutzer, der die Complete-Methode aufruft, die Datei.

Sie müssen über SeRestorePrivilege verfügen, um dieses Flag festzulegen. Die Gruppe administratoren enthält das SeRestorePrivilege-Recht.

BG_COPY_FILE_GROUP
Wenn festgelegt, werden die Gruppeninformationen der Datei beibehalten. Andernfalls verwendet BITS die primäre Gruppe des Auftragsbesitzers, um der Datei die Gruppeninformationen zuzuweisen.

Sie müssen über SeRestorePrivilege verfügen, um dieses Flag festzulegen. Die Gruppe administratoren enthält das SeRestorePrivilege-Recht.

BG_COPY_FILE_DACL
Falls festgelegt, kopiert BITS die expliziten ACEs aus der Quelldatei und vererbbare ACEs aus dem Zielordner. Andernfalls kopiert BITS die vererbbaren ACEs aus dem Zielordner. Wenn der Zielordner keine vererbbaren ACEs enthält, verwendet BITS die Standard-DACL aus dem Konto des Besitzers.
BG_COPY_FILE_SACL
Falls festgelegt, kopiert BITS die expliziten ACEs aus der Quelldatei und vererbbare ACEs aus dem Zielordner. Andernfalls kopiert BITS die vererbbaren ACEs aus dem Zielordner.

Sie müssen seSecurityPrivilege sowohl auf dem lokalen als auch auf dem Remotecomputer haben, um dieses Flag festlegen zu können. Die Administratorgruppe enthält das SeSecurityPrivilege-Recht.

BG_COPY_FILE_ALL
Falls festgelegt, kopiert BITS die Besitzer- und ACL-Informationen. Dies entspricht dem Festlegen aller Flags einzeln.

Rückgabewert

Diese Methode gibt die folgenden HRESULT-Werte sowie andere zurück.

Rückgabecode Beschreibung
S_OK
Die Flags wurden erfolgreich festgelegt.
BG_E_INVALID_STATE
Sie müssen diese Methode aufrufen, bevor der Auftrag in den BG_JOB_STATE_TRANSFERRED Zustand übergehen kann.
E_INVALIDARG
Der Flags-Parameter enthält ein Flag, das nicht in der Liste enthalten ist.

Hinweise

Diese Flags gelten für Remotedateinamen, die das SMB-Protokoll angeben. BITS ignoriert die Flags für HTTP-Übertragungen.

BITS gibt die Dateizeitstempel und -attribute (keine erweiterten Attribute) für SMB-Dateien weiter.

BITS wendet die Besitzer- und ACL-Informationen auf die Datei an, wenn die Dateiübertragung abgeschlossen ist, nicht beim Erstellen der temporären Übertragungsdatei. BITS gibt keinen Sicherheitsdeskriptor an, wenn die temporäre Übertragungsdatei erstellt wird (die Datei erbt die ACL-Informationen vom Zielverzeichnis). Wenn die übertragenen Daten vertraulich sind, sollte die Anwendung eine geeignete ACL für das Zielverzeichnis angeben, um nicht autorisierten Zugriff zu verhindern.

Um sicherzustellen, dass die richtigen Besitzer- und ACL-Informationen für alle Dateien im Auftrag festgelegt sind, rufen Sie diese Methode auf, nachdem Sie den Auftrag erstellt haben und bevor Sie die IBackgroundCopyJob::Resume-Methode aufrufen. Andernfalls enthalten die Dateien, die vor dem Festlegen der Flags übertragen wurden, nicht die entsprechenden Besitzer- und ACL-Informationen.

Diese Methode wird nach dem XCopy DOS-Befehl modelliert.

Die Besitzer- und ACL-Informationen werden nicht verwaltet, wenn Sie in ein FAT-Dateisystem herunterladen.

Wenn der Benutzer auf den lokalen und Remotecomputern keine Berechtigungen zum Kopieren der Besitzer- oder ACL-Informationen besitzt, versetzt BITS den Auftrag in einen vorübergehenden Fehlerzustand und legt den Fehlercode auf E_ACCESSDENIED fest.

Beispiele

Das folgende Beispiel zeigt, wie die SetFileACLFlags-Methode aufgerufen wird , um anzugeben, welche Besitzer- und ACL-Informationen mit den von BITS heruntergeladenen Dateien verwaltet werden sollen. Im Beispiel wird davon ausgegangen, dass die IBackgroundCopyJob-Variable pJob gültig ist, auf einen neuen Auftrag verweist und angehalten wird.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista, Windows XP mit SP2, KB842773 unter Windows Server 2003 und Windows XP
Unterstützte Mindestversion (Server) Windows Server 2008, Windows Server 2003 mit SP1
Zielplattform Windows
Kopfzeile bits2_0.h (Bits.h einschließen)
Bibliothek Bits.lib
DLL BitsPrx3.dll

Weitere Informationen

IBackgroundCopyJob3

IBackgroundCopyJob3::GetFileACLFlags