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:
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.
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.
Driver miniport menunggu semua paket penerima yang ditunjukkan untuk antrean tersebut dikembalikan ke driver miniport.
Driver miniport membebaskan semua memori bersama yang dialokasikan untuk buffer penerima adaptor jaringan yang terkait dengan antrean dengan memanggil NdisFreeSharedMemory.
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
NDIS_RECEIVE_QUEUE_FREE_PARAMETERS