共用方式為


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 訊號。
如果RX_CONTEXT結構是從非分頁集區內存配置, (RX_CONTEXT 結構的 Flags 成員已設定) RX_CONTEXT_FLAG_FROM_POOL 選項,則 RxContext 參數所指向的RX_CONTEXT結構將會傳回內部 RDBSS 外觀清單或非分頁集區內存。

規格需求

需求
目標平台 桌面
標頭 rxcontx.h (包含 Rxprocs.h rxcontx.h)
IRQL <= APC_LEVEL

另請參閱

RX_CONTEXT

RxCompleteRequest

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxInitializeContext

RxPrepareContextForReuse

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperations

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock