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 |
---|---|
|
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. |
|
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. |
|
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. |
|
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. |
|
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 |
---|---|
|
Die Flags wurden erfolgreich festgelegt. |
|
Sie müssen diese Methode aufrufen, bevor der Auftrag in den BG_JOB_STATE_TRANSFERRED Zustand übergehen kann. |
|
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 |