Freigeben über


FSCTL_SET_OBJECT_ID_EXTENDED IOCTL (winioctl.h)

Ändert Benutzerdaten, die dem Objektbezeichner für die angegebene Datei oder das angegebene Verzeichnis zugeordnet sind.

Um diesen Vorgang auszuführen, rufen Sie die Funktion DeviceIoControl mit den folgenden Parametern auf.

BOOL DeviceIoControl(
  (HANDLE) hDevice,                 // handle to device
  FSCTL_SET_OBJECT_ID_EXTENDED,     // dwIoControlCode
  (LPVOID) lpInBuffer,              // input buffer
  (DWORD) nInBufferSize,            // size of input buffer
  NULL,                             // lpOutBuffer
  0,                                // nOutBufferSize
  (LPDWORD) lpBytesReturned,        // number of bytes returned
  (LPOVERLAPPED) lpOverlapped       // OVERLAPPED structure
);

Hinweise

Objektbezeichner werden verwendet, um Dateien und Verzeichnisse nachzuverfolgen. Sie sind für die meisten Anwendungen unsichtbar und sollten niemals von Anwendungen geändert werden. Das Ändern eines Objektbezeichners kann zum Verlust von Daten aus Teilen einer Datei führen, bis hin zu und einschließlich ganzer Datenmengen.

Dieser Vorgang legt die Benutzerdaten nur im Objektbezeichner fest. Mögliche Verwendungen sind das Speichern eines Zeitstempels für die Erstellung des Objektbezeichners oder eine monoton steigende Versionsnummer. Das ObjectId-Element der FILE_OBJECTID_BUFFER-Struktur wird ignoriert. Es gibt keinen Mechanismus zum Ändern des ObjectId-Elements . Die typische Verwendung des FSCTL_SET_OBJECT_ID_EXTENDED-Steuerelementcodes besteht darin, dass die Anwendung die vom NTFS-Dateisystem generierten Benutzerdaten nicht verwendet, wenn das System den Objektbezeichner erstellt.

Um den Objektbezeichner für ein Objekt festzulegen, das noch nicht über einen verfügt, verwenden Sie den FSCTL_SET_OBJECT_ID-Steuerelementcode. Wenn das NTFS-Dateisystem einen Objektbezeichner generiert, falls dieser nicht vorhanden ist, verwenden Sie den FSCTL_CREATE_OR_GET_OBJECT_ID-Steuerelementcode.

Beachten Sie, dass die Zeitstempel für eine Remotedatei möglicherweise nicht ordnungsgemäß aktualisiert werden. Verwenden Sie nicht gepufferte E/A, um konsistente Ergebnisse zu gewährleisten.

In Windows 8 und Windows Server 2012 wird dieser Code von den folgenden Technologien unterstützt.

Technologie Unterstützt
SMB 3.0-Protokoll (Server Message Block) Ja
SMB 3.0 Transparent Failover (TFO) Ja
SMB 3.0 mit Dateifreigaben mit horizontaler Skalierung (SO) Ja
Dateisystem mit freigegebenen Clustervolumes (CsvFS) Ja
Robustes Dateisystem (Resilient File System, ReFS) No

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Kopfzeile winioctl.h (einschließlich Windows.h)

Weitere Informationen