Freigeben über


RxDereferenceAndDeleteRxContext_Real-Funktion (rxcontx.h)

RxDereferenceAndDeleteRxContext_Real leitet eine RX_CONTEXT Datenstruktur ab und wenn das ReferenceCount Member zu Null wechselt, werden die angegebenen RX_CONTEXT Struktur aus den RDBSS-Speicherdatenstrukturen zugeordnet und entfernt.

Syntax

void RxDereferenceAndDeleteRxContext_Real(
  [in] IN PRX_CONTEXT RxContext
);

Parameter

[in] RxContext

Ein Zeiger auf die zu entfernende RX_CONTEXT Struktur.

Rückgabewert

Nichts

Bemerkungen

RxDereferenceAndDeleteRxContext_Real wird von anderen Routinen als RxCompleteRequest- während asynchroner Anforderungen aufgerufen, die den RxContext Parameter entweder im initiierenden Thread oder in einem anderen Thread berühren. Daher wird die RX_CONTEXT Datenstruktur auf die letzte Ableitung gezählt und abgeschlossen.

Wenn das ReferenceCount Member der RX_CONTEXT Struktur, auf die durch den RxContext-Parameter verwiesen wird, nicht null ist, nachdem das System von der RxDereferenceAndDeleteRxContext_Real Routine abgeleitet (decrementiert) wurde, bewirkt RxDereferenceAndDeleteRxContext_Real, dass das System bei überprüften Builds ASSERTION ausführt.

Die RxDereferenceAndDeleteRxContext_Real Routine macht eine Reihe von spezifischen Prüfungen vor dem Entfernen eines RX_CONTEXT. Zu diesen Prüfungen gehören:

  • Wenn der AcquireReleaseFcbTrackerX Member 0 ist, bewirkt RxDereferenceAndDeleteRxContext_Real, dass das System bei überprüften Builds ASSERT ausführt.
  • Wenn das NumberOfActiveContexts Member der zugeordneten RDBSS_DEVICE_OBJECT Struktur auf RxContext-verweist –>RxDeviceObject- ist nach der Dereferenzierung (dekrementiert) und dem Start nicht null. Das Element zugeordneten RDBSS_DEVICE_OBJECT Struktur ist nicht NULL-, und RxDereferenceAndDeleteRxContext_Real signalisiert dann RxDereferenceAndDeleteRxContext_Real das SyncEvent in der RX_CONTEXT Struktur im StartStopContext.pStopContext.pStopContext Member.
Wenn die RX_CONTEXT Struktur aus nicht seitenseitigem Poolspeicher zugeordnet wurde (das Flags Mitglied der RX_CONTEXT-Struktur hat den RX_CONTEXT_FLAG_FROM_POOL Optionssatz), dann wird die RX_CONTEXT Struktur zurückgegeben, auf die der RxContext Parameter verweist, an eine interne RDBSS-Lookaside-Liste oder an nicht ausgelagerten Poolspeicher zurückgegeben.

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- rxcontx.h (include Rxprocs.h rxcontx.h)
IRQL- <= APC_LEVEL

Siehe auch

RX_CONTEXT

RxCompleteRequest-

RxCompleteRequest_Real

RxCreateRxContext-

RxDereference-

RxInitializeContext-

RxPrepareContextForReuse

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperations

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock