funzione RxDereferenceAndDeleteRxContext_Real (rxcontx.h)

RxDereferenceAndDeleteRxContext_Real dereferenzia 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 in memoria RDBSS.

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 sull'ultima dereferenziazione.

Se il membro ReferenceCount della struttura RX_CONTEXT a cui punta il parametro RxContext non è zero dopo essere stato derefenced (decrementato) dalla routine RxDereferenceAndDeleteRxContext_Real , RxDereferenceAndDeleteRxContext_Real fa sì che il sistema asserissi nelle build controllate.

La routine RxDereferenceAndDeleteRxContext_Real esegue una serie di controlli specifici prima di rimuovere un RX_CONTEXT. Questi controlli includono quanto segue:

  • Se il membro AcquireReleaseFcbTrackerX è 0, RxDereferenceAndDeleteRxContext_Real fa sì che il sistema asserissi nelle build controllate.
  • Se il membro NumberOfActiveContexts della struttura RDBSS_DEVICE_OBJECT associata punta a RxContext->RxDeviceObject non è zero dopo essere stato dereferenziato (decrementato) e il membro StartStopContext.pStopContext della struttura RDBSS_DEVICE_OBJECT associata non è NULL, RxDereferenceAndDeleteRxContext_Real segnalerà syncEvent nella struttura RX_CONTEXT nel membro StartStopContext.pStopContext .
Se la struttura RX_CONTEXT è stata allocata dalla memoria del pool non di pagine (il membro Flags della struttura RX_CONTEXT dispone dell'opzione RX_CONTEXT_FLAG_FROM_POOL impostata), la struttura RX_CONTEXT a cui punta il parametro RxContext verrà restituita a un elenco lookaside RDBSS interno o alla memoria del pool non di paging.

Requisiti

Requisito Valore
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