Share via


RxPrepareContextForReuse-Funktion (rxcontx.h)

RxPrepareContextForReuse bereitet eine RX_CONTEXT Datenstruktur für die Wiederverwendung vor, indem alle vorgangsspezifischen Zuordnungen und Akquisitionen zurückgesetzt werden, die vorgenommen wurden (das ReferenceCount-Element für die RX_CONTEXT-Struktur ist auf Null festgelegt). Parameter, die aus dem IRP abgerufen wurden, werden nicht geändert.

Syntax

void RxPrepareContextForReuse(
  [in, out] IN OUT PRX_CONTEXT RxContext
);

Parameter

[in, out] RxContext

Ein Zeiger auf die RX_CONTEXT-Struktur.

Rückgabewert

Keine

Bemerkungen

Die RxPrepareContextForReuse-Routine überprüft, ob mehrere vorgangsspezifische Member in der RX_CONTEXT-Struktur NULL sind, bevor das ReferenceCount-Element auf 0 festgelegt wird. Diese vorgangsspezifischen Tests, die erfüllt werden müssen, umfassen Folgendes:

  • Wenn das MajorFunction-Element des zugeordneten IRP IRP_MJ_CREATE ist, muss das Create.CanonicalNameBuffer-ElementNULL sein.
  • Wenn das MajorFunction-Element des zugeordneten IRP IRP_MJ_READ oder IRP_MJ_WRITE ist, müssen die RxContextSerializationQLinks.Flink - und RxContextSerializationQLinks.Blink-MemberNULL sein.
Wenn eine der oben genannten Bedingungen nicht erfüllt ist, bewirkt RxPrepareContextForReuse , dass das System bei überprüften Builds ASSERT ausführt.

Die RxPrepareContextForReuse-Routine wird normalerweise nur von Netzwerk-Miniumleitungstreibern verwendet, die RX_CONTEXT Strukturen direkt neu initialisieren.

Anforderungen

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

Weitere Informationen

RxCompleteRequest

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperations

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock