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.
BOOL UnlockFile(
[in] HANDLE hFile,
[in] DWORD dwFileOffsetLow,
[in] DWORD dwFileOffsetHigh,
[in] DWORD nNumberOfBytesToUnlockLow,
[in] DWORD nNumberOfBytesToUnlockHigh
);
[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.
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.
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 |
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 |