RxDereferenceAndDeleteRxContext_Real函式 (rxcontx.h)
RxDereferenceAndDeleteRxContext_Real 取值RX_CONTEXT數據結構,如果 ReferenceCount 成員變成零,則會解除分配,並從 RDBSS 記憶體內部數據結構中移除指定的RX_CONTEXT結構。
語法
void RxDereferenceAndDeleteRxContext_Real(
[in] IN PRX_CONTEXT RxContext
);
參數
[in] RxContext
要移除之RX_CONTEXT結構的指標。
傳回值
無
備註
RxDereferenceAndDeleteRxContext_Real 是由 RxCompleteRequest 以外的例程所呼叫,在異步要求期間會觸碰起始線程或某些其他線程中的 RxContext 參數。 因此,RX_CONTEXT數據結構會在上次取值時計算和完成參考。
如果 RxContext 參數所指向之RX_CONTEXT結構的 ReferenceCount 成員在被取值后不是零, (由RxDereferenceAndDeleteRxContext_Real例程遞減) ,則RxDereferenceAndDeleteRxContext_Real會導致系統在核取的組建上判斷提示。
RxDereferenceAndDeleteRxContext_Real例程會在移除RX_CONTEXT之前進行一些特定的檢查。 這些檢查包括下列各項:
- 如果 AcquireReleaseFcbTrackerX 成員為 0, 則RxDereferenceAndDeleteRxContext_Real 會導致系統在核取的組建上判斷提示。
- 如果在取值后指向 RxContext->RxDeviceObject 的相關聯RDBSS_DEVICE_OBJECT結構的 NumberOfActiveContexts 成員不是零, (遞減) 且相關聯RDBSS_DEVICE_OBJECT結構的 StartStopContext.pStopContext 成員不是 NULL, 然後,RxDereferenceAndDeleteRxContext_Real會在 StartStopContext.pStopContext 成員的 RX_CONTEXT 結構上發出 SyncEvent 訊號。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | rxcontx.h (包含 Rxprocs.h rxcontx.h) |
IRQL | <= APC_LEVEL |
另請參閱
RxResumeBlockedOperations_Serially