Fungsi RxPrepareContextForReuse (rxcontx.h)

RxPrepareContextForReuse menyiapkan struktur data RX_CONTEXT untuk digunakan kembali dengan mengatur ulang semua alokasi dan akuisisi khusus operasi yang telah dilakukan (anggota ReferenceCount ke struktur RX_CONTEXT diatur ke nol). Parameter yang telah diperoleh dari IRP tidak dimodifikasi.

Sintaks

void RxPrepareContextForReuse(
  [in, out] IN OUT PRX_CONTEXT RxContext
);

Parameter

[in, out] RxContext

Penunjuk ke struktur RX_CONTEXT.

Nilai kembali

Tidak ada

Keterangan

Rutinitas RxPrepareContextForReuse memeriksa bahwa beberapa anggota khusus operasi dalam struktur RX_CONTEXT adalah NULL sebelum mengatur anggota ReferenceCount ke nol. Pengujian khusus operasi ini yang harus dipenuhi meliputi yang berikut ini:

  • Jika anggota MajorFunction dari IRP terkait IRP_MJ_CREATE, maka anggota Create.CanonicalNameBuffer harus NULL.
  • Jika anggota MajorFunction dari IRP terkait IRP_MJ_READ atau IRP_MJ_WRITE, maka anggota RxContextSerializationQLinks.Flink dan RxContextSerializationQLinks.Blink harus NULL.
Jika salah satu kondisi di atas tidak terpenuhi, RxPrepareContextForReuse menyebabkan sistem menjadi ASSERT pada build yang diperiksa.

Rutinitas RxPrepareContextForReuse biasanya hanya akan digunakan oleh driver pengalih mini jaringan yang menginisialisasi ulang struktur RX_CONTEXT secara langsung.

Persyaratan

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

Lihat juga

RxCompleteRequest

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperations

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock