Freigeben über


FltAcquirePushLockSharedEx-Funktion (fltkernel.h)

Die FltAcquirePushLockSharedEx-Routine ruft die angegebene Pushsperre für den gemeinsamen Zugriff durch den aufrufenden Thread ab.

Syntax

VOID FLTAPI FltAcquirePushLockSharedEx(
  PEX_PUSH_LOCK PushLock,
  ULONG         Flags
);

Parameter

PushLock

Undurchsichtiger Pushsperrzeiger. Dieser Zeiger muss durch einen vorherigen Aufruf von FltInitializePushLock initialisiert worden sein.

Flags

Eine Bitmaske von Flags, die die Attribute der Sperre steuern.

Rückgabewert

Keine.

Hinweise

Die FltAcquirePushLockSharedEx-Routine ruft die angegebene Pushsperre für den gemeinsamen Zugriff durch den aufrufenden Thread ab.

Pushsperren ähneln ERESOURCE-Strukturen (auch als Ressourcen bezeichnet), da sie für freigegebenen oder exklusiven Zugriff abgerufen werden können. Weitere Informationen zu Pushsperren finden Sie im Referenzeintrag für FltInitializePushLock.

Im Gegensatz zu ERESOURCE-Strukturen können Pushsperren nicht rekursiv abgerufen werden. Wenn der Aufrufer bereits die Pushsperre für den exklusiven Zugriff erworben hat, hängt das System. Wenn der Aufrufer die Pushsperre für den gemeinsamen Zugriff bereits erworben hat, kann er den freigegebenen Zugriff erneut empfangen. Jeder Aufruf von FltAcquirePushLockShared muss jedoch durch einen nachfolgenden Aufruf von FltReleasePushLock abgeglichen werden.

Wann der Aufrufer freigegebenen Zugriff auf die angegebene Pushsperre erhält, hängt von Folgendem ab:

  • Wenn die Pushsperre derzeit nicht vorhanden ist, wird der freigegebene Zugriff sofort auf den aktuellen Thread gewährt.

  • Wenn die Pushsperre bereits für den freigegebenen Zugriff von einem anderen Thread abgerufen wurde und kein Thread auf exklusiven Zugriff auf die Pushsperre wartet, wird dem Aufrufer sofort freigegebener Zugriff gewährt. Der Aufrufer wird in einen Wartezustand versetzt, wenn ein exklusiver Kellner vorhanden ist.

  • Wenn die Pushsperre bereits für den exklusiven Zugriff durch einen anderen Thread abgerufen wurde oder ein anderer Thread auf exklusiven Zugriff wartet, wird der aktuelle Thread in einen Wartezustand versetzt, bis die Pushsperre abgerufen werden kann.

Anforderungen

Anforderung Wert
Header fltkernel.h
Bibliothek FltMgr.lib

Weitere Informationen

FltInitializePushLock