OID_RECEIVE_FILTER_FREE_QUEUE

Driver protokol NDIS mengeluarkan pengidentifikasi objek (OID) menetapkan permintaan OID_RECEIVE_FILTER_FREE_QUEUE untuk membebaskan antrean penerima.

Anggota InformationBuffer dari struktur NDIS_OID_REQUEST berisi penunjuk ke struktur NDIS_RECEIVE_QUEUE_FREE_PARAMETERS dengan pengidentifikasi antrean jenis NDIS_RECEIVE_QUEUE_ID.

Keterangan

Permintaan set OID OID_RECEIVE_FILTER_FREE_QUEUE bersifat opsional untuk driver miniport NDIS 6.20 dan yang lebih baru. Ini wajib untuk driver miniport yang mendukung antarmuka antrean komputer virtual.

Setelah driver yang terlalu berlebihan mengeluarkan OID_RECEIVE_FILTER_ALLOCATE_QUEUE OID untuk mengalokasikan antrean terima, OID OID_RECEIVE_FILTER_FREE_QUEUE mengeluarkan untuk membebaskan antrean terima.

Ketika NDIS meminta driver miniport untuk membebaskan VMQ menerima antrean, NDIS mengikuti langkah-langkah berikut:

  1. Adaptor jaringan menghentikan transfer data DMA untuk menerima buffer yang terkait dengan antrean terima, setelah itu antrean harus memasuki status DMA Dihentikan. Adaptor jaringan mungkin menghentikan aktivitas DMA ketika menerima permintaan OID OID_RECEIVE_FILTER_CLEAR_FILTER untuk menghapus filter set terakhir pada antrean terima.

  2. Driver miniport menghasilkan indikasi status NDIS_STATUS_RECEIVE_QUEUE_STATE dengan anggota QueueState dari struktur NDIS_RECEIVE_QUEUE_STATE diatur ke NdisReceiveQueueOperationalStateDmaStopped untuk memberi tahu NDIS bahwa transfer DMA telah dihentikan.

  3. Driver miniport menunggu semua paket penerima yang ditunjukkan untuk antrean tersebut dikembalikan ke driver miniport.

  4. Driver miniport membebaskan semua memori bersama yang dialokasikan untuk buffer penerima adaptor jaringan yang terkait dengan antrean dengan memanggil NdisFreeSharedMemory.

  5. Driver miniport menyelesaikan permintaan OID OID_RECEIVE_FILTER_FREE_QUEUE untuk membebaskan antrean penerima.

Driver miniport memanggil fungsi NdisFreeSharedMemory untuk membebaskan memori bersama untuk antrean. Jika driver miniport mengalokasikan memori bersama untuk antrean nondefault, driver membebaskan memori bersama dalam konteks OID_RECEIVE_FILTER_FREE_QUEUE OID saat membebaskan antrean. Driver Miniport membebaskan memori bersama yang dialokasikan untuk antrean default dalam konteks fungsi MiniportHaltEx .

Driver yang terlalu berlebihan harus membebaskan semua filter yang diaturnya pada antrean sebelum membebaskan antrean. Selain itu, driver yang terlalu berlebihan harus membebaskan semua antrean penerima yang dialokasikan pada adaptor jaringan sebelum memanggil fungsi NdisCloseAdapterEx untuk menutup pengikatan ke adaptor jaringan. NDIS membebaskan semua antrean yang dialokasikan pada adaptor jaringan sebelum memanggil fungsi MiniportHaltEx driver miniport.

Mengembalikan Kode Status

Fungsi MiniportOidRequest driver miniport mengembalikan salah satu nilai berikut untuk permintaan ini:

Istilah Deskripsi

NDIS_STATUS_SUCCESS

Driver miniport berhasil menyelesaikan permintaan.

NDIS_STATUS_PENDING

Driver miniport akan menyelesaikan permintaan secara asinkron. Setelah driver miniport menyelesaikan semua pemrosesan, itu harus berhasil permintaan dengan memanggil fungsi NdisMOidRequestComplete , meneruskan NDIS_STATUS_SUCCESS untuk parameter Status .

NDIS_STATUS_NOT_ACCEPTED

Driver miniport sedang mengatur ulang.

NDIS_STATUS_REQUEST_ABORTED

Driver miniport berhenti memproses permintaan. Misalnya, NDIS disebut fungsi MiniportResetEx .

NDIS mengembalikan salah satu kode status berikut untuk permintaan ini:

Kode status Deskripsi

NDIS_STATUS_SUCCESS

Antrean yang diminta berhasil dikosongkan.

NDIS_STATUS_PENDING

Permintaan tertunda penyelesaiannya. NDIS akan meneruskan kode status akhir dan hasil ke handler penyelesaian permintaan OID untuk pemanggil setelah permintaan selesai.

NDIS_STATUS_INVALID_PARAMETER

Pengidentifikasi antrean tidak valid.

NDIS_STATUS_INVALID_LENGTH

Buffer informasi terlalu pendek. NDIS mengatur DATA. METHOD_INFORMATION. Anggota BytesNeeded dalam struktur NDIS_OID_REQUEST ke ukuran buffer minimum yang diperlukan.

Persyaratan

Versi

Didukung di NDIS 6.20 dan yang lebih baru.

Header

Ntddndis.h (termasuk Ndis.h)

Lihat juga

MiniportHaltEx

NDIS_OID_REQUEST

NDIS_RECEIVE_QUEUE_FREE_PARAMETERS

NDIS_STATUS_RECEIVE_QUEUE_STATE

NdisCloseAdapterEx

NdisFreeSharedMemory

OID_RECEIVE_FILTER_ALLOCATE_QUEUE