IByteBuffer::LockRegion-Methode
[Die LockRegion-Methode ist für die Verwendung in den im Abschnitt Anforderungen angegebenen Betriebssystemen verfügbar. Es ist nicht für die Verwendung in Windows Server 2003 mit Service Pack 1 (SP1) und höher, Windows Vista, Windows Server 2008 und nachfolgenden Versionen des Betriebssystems verfügbar. Die IStream-Schnittstelle bietet ähnliche Funktionen.]
Die LockRegion-Methode schränkt den Zugriff auf einen angegebenen Bytebereich im Pufferobjekt ein.
Syntax
HRESULT LockRegion(
[in] LONG libOffset,
[in] LONG cb,
[in] LONG dwLockType
);
Parameter
-
libOffset [ In]
-
Eine ganze Zahl, die den Byteoffset für den Anfang des Bereichs angibt.
-
cb [ In]
-
Eine ganze Zahl, die die Länge des Bereichs in Bytes angibt, der eingeschränkt werden soll.
-
dwLockType [ In]
-
Gibt die Einschränkungen an, die für den Zugriff auf den Bereich angefordert werden. Dies kann einer der Werte in der folgenden Tabelle sein.
Wert Bedeutung - LOCK _ WRITE
Der angegebene Bytebereich kann mehrmals geöffnet und gelesen werden. Das Schreiben in den gesperrten Bereich ist jedoch nicht zulässig, mit Ausnahme des Besitzers, dem diese Sperre gewährt wurde. - LOCK _ EXCLUSIVE
Das Schreiben in den angegebenen Bytebereich ist mit Ausnahme des Besitzers, dem diese Sperre gewährt wurde, nicht zulässig. - LOCK _ ONLYONCE
Wenn diese Sperre gewährt wird, kann keine andere LOCK _ ONLYONCE-Sperre für den Bereich erhalten werden. In der Regel ist dieser Sperrtyp ein Alias für einen anderen Sperrtyp. Daher können bestimmte Implementierungen über zusätzliches Verhalten verfügen, das diesem Sperrtyp zugeordnet ist.
Rückgabewert
Der Rückgabewert ist ein HRESULT. Der Wert S _ OK gibt an, dass der Aufruf erfolgreich war.
Bemerkungen
Der Bytebereich kann sich über das aktuelle Ende des Streams erstrecken. Das Sperren über das Ende eines Streams hinaus ist als Kommunikationsmethode zwischen verschiedenen Instanzen des Streams nützlich, ohne Daten zu ändern, die tatsächlich Teil des Streams sind.
Es können drei Arten von Sperren unterstützt werden: Sperren, um andere Writer auszuschließen, Sperren zum Ausschließen anderer Reader oder Writer und Sperren, die es nur einem Anfordernden ermöglichen, eine Sperre für den angegebenen Bereich zu erhalten. Dies ist normalerweise ein Alias für einen der beiden anderen Sperrtypen. Eine bestimmte Streaminstanz unterstützt möglicherweise einen der ersten beiden Typen oder beide. Der Sperrtyp wird von dwLockType mithilfe eines Werts aus der LOCKTYPE-Enumeration angegeben.
Alle mit LockRegion gesperrten Regionen müssen später explizit entsperrt werden, indem IByteBuffer::UnlockRegion mit genau denselben Werten für die Parameter libOffset, cb und dwLockTypegesperrt wird. Der Bereich muss entsperrt werden, bevor der Stream freigegeben wird. Zwei angrenzende Regionen können nicht separat gesperrt und dann mit einem einzigen Entsperrungsaufruf entsperrt werden.
Beispiele
Das folgende Beispiel zeigt, wie der Zugriff auf einen Bytebereich eingeschränkt wird.
HRESULT hr;
// Lock a region.
hr = pIByteBuff->LockRegion(0, 10, LOCK_EXCLUSIVE);
if (FAILED(hr))
printf("Failed IByteBuffer::LockRegion\n");
Requirements (Anforderungen)
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) |
Windows Nur [ XP-Desktop-Apps] |
| Unterstützte Mindestversion (Server) |
Windows Nur Server [ 2003-Desktop-Apps] |
| Ende des Supports (Client) |
Windows XP |
| Ende des Supports (Server) |
Windows Server 2003 |
| Header |
|
| Typbibliothek |
|
| DLL |
|
| IID |
IID _ IByteBuffer ist als E126F8FE-A7AF-11D0-B88A-00C04FD424B9 definiert. |