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 membro ReferenceCount alla struttura di RX_CONTEXT è impostato su zero). I parametri ottenuti dall'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 dell'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 causa l'asserzione del sistema nelle build controllate.

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

Requisiti

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

Vedi anche

RxCompleteRequest

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperations

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock