funzione RxDereferenceAndDeleteRxContext_Real (rxcontx.h)

RxDereferenceAndDeleteRxContext_Real dereference una struttura di dati RX_CONTEXT e se il membro ReferenceCount passa a zero, dealloca e rimuove la struttura di RX_CONTEXT specificata dalle strutture di dati RDBSS in memoria.

Sintassi

void RxDereferenceAndDeleteRxContext_Real(
  [in] IN PRX_CONTEXT RxContext
);

Parametri

[in] RxContext

Puntatore alla struttura RX_CONTEXT da rimuovere.

Valore restituito

nessuno

Osservazioni

RxDereferenceAndDeleteRxContext_Real viene chiamato da routine diverse da RxCompleteRequest durante le richieste asincrone che toccano il parametro RxContext nel thread di avvio o in un altro thread. Pertanto, la struttura dei dati RX_CONTEXT viene conteggiata e finalizzata nell'ultima dereferenza.

Se il membro ReferenceCount della struttura RX_CONTEXT puntato dal parametro RxContext non è zero dopo essere stato derefenced (decrementato) dalla routine RxDereferenceAndDeleteRxContext_Real , RxDereferenceAndDeleteRxContext_Real causa l'asserzione del sistema nelle build controllate.

La routine RxDereferenceAndDeleteRxContext_Real effettua diversi controlli specifici prima di rimuovere un RX_CONTEXT . Questi controlli includono quanto segue:

  • Se il membro AcquireReleaseFcbTrackerX è 0, RxDereferenceAndDeleteRxContext_Real causa l'asserzione del sistema nelle build controllate.
  • Se il membro NumberOfActiveContexts della struttura RDBSS_DEVICE_OBJECT associata punta a RxContext->RxDeviceObject non è zero dopo essere stato dereferenced (decremented) e il membro StartStopContext.pStopContext della struttura RDBSS_DEVICE_OBJECT associata non è NULL, RxDereferenceAndDeleteRxContext_Real segnalerà syncEvent nella struttura RX_CONTEXT nel membro StartStopContextContext.pStopContext .
Se la struttura RX_CONTEXT è stata allocata dalla memoria del pool non di pagine (il membro Flag della struttura RX_CONTEXT ha il set di opzioni RX_CONTEXT_FLAG_FROM_POOL), la struttura RX_CONTEXT puntata dal parametro RxContext verrà restituita a un elenco lookaside RDBSS interno o a una memoria del pool non a pagina.

Requisiti

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

Vedi anche

RX_CONTEXT

RxCompleteRequest

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxInitializeContext

RxPrepareContextForReuse

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperations

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock