Freigeben über


RxPrepareContextForReuse-Funktion (rxcontx.h)

RxPrepareContextForReuse bereitet eine RX_CONTEXT Datenstruktur für die Wiederverwendung vor, indem alle vorgangsspezifischen Zuordnungen und Käufe zurückgesetzt werden (das ReferenceCount Member auf 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

Nichts

Bemerkungen

Die RxPrepareContextForReuse- Routine überprüft, ob mehrere vorgangsspezifische Member in der RX_CONTEXT-Struktur NULL- sind, bevor das ReferenceCount Member auf Null festgelegt wird. Zu diesen vorgangsspezifischen Tests, die erfüllt werden müssen, gehören:

  • Wenn das MajorFunction Mitglied des zugeordneten IRP IRP_MJ_CREATE ist, muss das Create.CanonicalNameBuffer Member NULL-sein.
  • Wenn das MajorFunction Member des zugeordneten IRP IRP_MJ_READ oder IRP_MJ_WRITE ist, müssen die RxContextSerializationQLinks.Flink und RxContextSerializationQLinks.Blink Member NULLsein.
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 würde normalerweise nur von Netzwerk-Miniumleitungstreibern verwendet werden, die RX_CONTEXT Strukturen direkt neu initialisieren.

Anforderungen

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

Siehe auch

RxCompleteRequest-

RxCompleteRequest_Real

RxCreateRxContext-

RxDereference-

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext-

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperations

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock