RxDereferenceAndDeleteRxContext_Real-Funktion (rxcontx.h)

RxDereferenceAndDeleteRxContext_Real leitet eine RX_CONTEXT Datenstruktur ab, und wenn das ReferenceCount-Element auf null wechselt, wird die Zuordnung der angegebenen RX_CONTEXT-Struktur aus den RDBSS-In-Memory-Datenstrukturen aufgehoben und entfernt.

Syntax

void RxDereferenceAndDeleteRxContext_Real(
  [in] IN PRX_CONTEXT RxContext
);

Parameter

[in] RxContext

Ein Zeiger auf die RX_CONTEXT Struktur, die entfernt werden soll.

Rückgabewert

Keine

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 beim letzten Rückschluss gezählt und abgeschlossen.

Wenn das ReferenceCount-Element der RX_CONTEXT-Struktur, auf die der RxContext-Parameter verweist, nach der Deaktivierung (Dekrementierung) durch die RxDereferenceAndDeleteRxContext_Real Routine nicht 0 null ist, bewirkt RxDereferenceAndDeleteRxContext_Real , dass das System bei überprüften Builds ASSERT ausführt.

Die RxDereferenceAndDeleteRxContext_Real Routine führt eine Reihe spezifischer Überprüfungen durch, bevor ein RX_CONTEXT entfernt wird. Diese Überprüfungen umfassen Folgendes:

  • Wenn der AcquireReleaseFcbTrackerX-Member 0 ist, bewirkt RxDereferenceAndDeleteRxContext_Real , dass das System bei überprüften Builds ASSERT ausführt.
  • Wenn das NumberOfActiveContexts-Element der zugeordneten RDBSS_DEVICE_OBJECT-Struktur, die auf RxContext->RxDeviceObject verweist, nach dereferent (dekrementiert) nicht 0 0 ist und der StartStopContext.pStopContext-Member der zugeordneten RDBSS_DEVICE_OBJECT-Struktur nicht NULL ist, signalisiert RxDereferenceAndDeleteRxContext_Real das SyncEvent für die RX_CONTEXT Struktur im StartStopContext.pStopContext-Member .
Wenn die RX_CONTEXT-Struktur aus dem Nicht-Seitenpoolspeicher zugeordnet wurde (für das Flags-Element der RX_CONTEXT-Struktur ist die option RX_CONTEXT_FLAG_FROM_POOL festgelegt), wird die RX_CONTEXT Struktur zurückgegeben, auf die der RxContext-Parameter verweist, an eine interne RDBSS-Lookaside-Liste oder an den nicht ausgelagerten Poolspeicher.

Anforderungen

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

Weitere Informationen

RX_CONTEXT

RxCompleteRequest

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxInitializeContext

RxPrepareContextForReuse

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperations

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock