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 |