fungsi RxDereferenceAndDeleteRxContext_Real (rxcontx.h)

RxDereferenceAndDeleteRxContext_Real mendereferensikan struktur data RX_CONTEXT dan jika anggota ReferenceCount masuk ke nol, maka itu membatalkan alokasi dan menghapus struktur RX_CONTEXT yang ditentukan dari struktur data dalam memori RDBSS.

Sintaks

void RxDereferenceAndDeleteRxContext_Real(
  [in] IN PRX_CONTEXT RxContext
);

Parameter

[in] RxContext

Penunjuk ke struktur RX_CONTEXT yang akan dihapus.

Nilai kembali

Tidak ada

Keterangan

RxDereferenceAndDeleteRxContext_Real dipanggil oleh rutinitas selain RxCompleteRequest selama permintaan asinkron yang menyentuh parameter RxContext baik di utas yang dimulai atau di beberapa utas lainnya. Dengan demikian, struktur data RX_CONTEXT dihitung dan diselesaikan pada dereferensi terakhir.

Jika anggota ReferenceCount dari struktur RX_CONTEXT yang ditunjukkan oleh parameter RxContext bukan nol setelah diturunkan (diturunkan) oleh RxDereferenceAndDeleteRxContext_Real rutin, maka RxDereferenceAndDeleteRxContext_Real menyebabkan sistem assert pada build yang diperiksa.

Rutinitas RxDereferenceAndDeleteRxContext_Real melakukan sejumlah pemeriksaan tertentu sebelum menghapus RX_CONTEXT. Pemeriksaan ini mencakup hal-hal berikut:

  • Jika anggota AcquireReleaseFcbTrackerX adalah 0, maka RxDereferenceAndDeleteRxContext_Real menyebabkan sistem melakukan ASSERT pada build yang diperiksa.
  • Jika anggota NumberOfActiveContexts dari struktur RDBSS_DEVICE_OBJECT terkait yang diacu ke RxContext->RxDeviceObject bukan nol setelah didereferensikan (diturunkan) dan anggota StartStopContext.pStopContext dari struktur RDBSS_DEVICE_OBJECT terkait bukan NULL, kemudian RxDereferenceAndDeleteRxContext_Real akan memberi sinyal SyncEvent pada struktur RX_CONTEXT di anggota StartStopContext.pStopContext .
Jika struktur RX_CONTEXT dialokasikan dari memori kumpulan non-halaman (anggota Bendera struktur RX_CONTEXT memiliki kumpulan opsi RX_CONTEXT_FLAG_FROM_POOL), struktur RX_CONTEXT yang ditunjukkan oleh parameter RxContext akan dikembalikan ke daftar tampilan RDBSS internal atau ke memori kumpulan non-halaman.

Persyaratan

Persyaratan Nilai
Target Platform Desktop
Header rxcontx.h (termasuk Rxprocs.h rxcontx.h)
IRQL <= APC_LEVEL

Lihat juga

RX_CONTEXT

RxCompleteRequest

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxInitializeContext

RxPrepareContextForReuse

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperations

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock