función RxDereferenceAndDeleteRxContext_Real (rxcontx.h)
RxDereferenceAndDeleteRxContext_Real desreferencia una estructura de datos RX_CONTEXT y, si el miembro ReferenceCount va a cero, desasigna y quita la estructura de RX_CONTEXT especificada de las estructuras de datos en memoria de RDBSS.
Sintaxis
void RxDereferenceAndDeleteRxContext_Real(
[in] IN PRX_CONTEXT RxContext
);
Parámetros
[in] RxContext
Puntero a la estructura RX_CONTEXT que se va a quitar.
Valor devuelto
None
Observaciones
RxDereferenceAndDeleteRxContext_Real llama a rutinas distintas de RxCompleteRequest durante las solicitudes asincrónicas que tocan el parámetro RxContext en el subproceso iniciador o en algún otro subproceso. Por lo tanto, la estructura de datos RX_CONTEXT se cuenta y finaliza en la última desreferencia.
Si el miembro ReferenceCount de la estructura de RX_CONTEXT a la que apunta el parámetro RxContext no es cero después de desreferenciarse (decrementado) por la rutina de RxDereferenceAndDeleteRxContext_Real , RxDereferenceAndDeleteRxContext_Real hace que el sistema aserte en compilaciones comprobadas.
La rutina RxDereferenceAndDeleteRxContext_Real realiza una serie de comprobaciones específicas antes de quitar un RX_CONTEXT. Estas comprobaciones incluyen lo siguiente:
- Si el miembro AcquireReleaseFcbTrackerX es 0, RxDereferenceAndDeleteRxContext_Real hace que el sistema aserte las compilaciones activadas.
- Si el miembro NumberOfActiveContexts de la estructura de RDBSS_DEVICE_OBJECT asociada que apunta a RxContext->RxDeviceObject no es cero después de desreferenciarse (decremente) y el miembro StartStopContext.pStopContext de la estructura de RDBSS_DEVICE_OBJECT asociada no es NULL, RxDereferenceAndDeleteRxContext_Real señalará syncEvent en la estructura RX_CONTEXT del miembro StartStopContext.pStopContext .
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Escritorio |
Encabezado | rxcontx.h (incluya Rxprocs.h rxcontx.h) |
IRQL | <= APC_LEVEL |
Consulte también
RxResumeBlockedOperations_Serially