Condividi tramite


Funzione RxPrepareContextForReuse (rxcontx.h)

RxPrepareContextForReuse prepara una struttura di dati RX_CONTEXT per il riutilizzo reimpostando tutte le allocazioni e le acquisizioni specifiche dell'operazione effettuate (il ReferenceCount membro alla struttura RX_CONTEXT è impostato su zero). I parametri ottenuti da IRP non vengono modificati.

Sintassi

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

Parametri

[in, out] RxContext

Puntatore alla struttura RX_CONTEXT.

Valore restituito

Nessuno

Osservazioni

La routine RxPrepareContextForReuse verifica che diversi membri specifici dell'operazione nella struttura RX_CONTEXT siano NULL prima di impostare il membro referenceCount su zero. Questi test specifici dell'operazione che devono essere soddisfatti includono quanto segue:

  • Se il membro MajorFunction di IRP associato è IRP_MJ_CREATE, il membro Create.CanonicalNameBuffer deve essere NULL .
  • Se il membro MajorFunction dell'IRP associato è IRP_MJ_READ o IRP_MJ_WRITE, i membri RxContextSerializationQLinks.Flink e RxContextSerializationQLinks.Blink devono essere NULL.
Se una delle condizioni precedenti non viene soddisfatta, RxPrepareContextForReuse fa sì che il sistema esecuzione assert nelle build controllate.

La routine RxPrepareContextForReuse normalmente viene usata solo dai driver del mini-redirector di rete che reinizializzare direttamente le strutture RX_CONTEXT.

Fabbisogno

Requisito Valore
piattaforma di destinazione Desktop
intestazione rxcontx.h (include Rxprocs.h rxcontx.h)
IRQL <= APC_LEVEL

Vedere anche

RxCompleteRequest

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperations

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock