Freigeben über


UnlockFile-Funktion (fileapi.h)

Entsperrt einen Bereich in einer geöffneten Datei. Durch das Entsperren einer Region können andere Prozesse auf die Region zugreifen.

Verwenden Sie die UnlockFileEx-Funktion , um eine alternative Möglichkeit zum Angeben der Region zu verwenden.

Syntax

BOOL UnlockFile(
  [in] HANDLE hFile,
  [in] DWORD  dwFileOffsetLow,
  [in] DWORD  dwFileOffsetHigh,
  [in] DWORD  nNumberOfBytesToUnlockLow,
  [in] DWORD  nNumberOfBytesToUnlockHigh
);

Parameter

[in] hFile

Ein Handle für die Datei, die eine region enthält, die mit LockFile gesperrt ist. Das Dateihandle muss mit dem zugriffsrecht GENERIC_READ oder GENERIC_WRITE erstellt worden sein. Weitere Informationen finden Sie unter Dateisicherheit und Zugriffsrechte.

[in] dwFileOffsetLow

Das Wort mit niedriger Reihenfolge des Anfangsbyteoffsets in der Datei, in der der gesperrte Bereich beginnt.

[in] dwFileOffsetHigh

Das Wort mit hoher Reihenfolge des Anfangsbyteoffsets in der Datei, in der der gesperrte Bereich beginnt.

[in] nNumberOfBytesToUnlockLow

Das Wort mit niedriger Reihenfolge der Länge des zu entsperrenden Bytebereichs.

[in] nNumberOfBytesToUnlockHigh

Das Wort mit hoher Ordnung der Länge des zu entsperrenden Bytebereichs.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Diese Funktion arbeitet immer synchron, kann jedoch keinen Vervollständigungseintrag in die Warteschlange stellen, wenn dem Dateihandle ein Vervollständigungsport zugeordnet ist.

Durch das Entsperren einer Region einer Datei wird eine zuvor erworbene Sperre für die Datei freigegeben. Die zu entsperrende Region muss genau einer vorhandenen gesperrten Region entsprechen. Zwei angrenzende Regionen einer Datei können nicht separat gesperrt und dann mit einer einzelnen Region entsperrt werden, die beide gesperrten Regionen umfasst.

Wenn ein Prozess beendet wird, wenn ein Teil einer Datei gesperrt ist oder eine Datei mit ausstehenden Sperren geschlossen wird, werden die Sperren vom Betriebssystem entsperrt. Die Zeit, die das Betriebssystem benötigt, um diese Sperren zu entsperren, hängt jedoch von den verfügbaren Systemressourcen ab. Daher wird empfohlen, dass Ihr Prozess alle Dateien explizit entsperrt, die er beim Beenden gesperrt hat. Wenn dies nicht geschieht, kann der Zugriff auf diese Dateien verweigert werden, wenn das Betriebssystem sie noch nicht entsperrt hat.

Unter Windows 8 und Windows Server 2012 wird diese Funktion 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) Ja

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile fileapi.h (Einschließen von Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

Sperren und Entsperren von Bytebereichen in Dateien

CreateFile

Dateiverwaltungsfunktionen

LockFile

UnlockFileEx