OID_RECEIVE_FILTER_ALLOCATE_QUEUE
Driver yang terlalu mengandalkan mengeluarkan permintaan metode pengidentifikasi objek (OID) dari OID_RECEIVE_FILTER_ALLOCATE_QUEUE untuk mengalokasikan antrean yang memiliki serangkaian parameter konfigurasi awal.
Anggota InformationBuffer dari struktur NDIS_OID_REQUEST berisi penunjuk ke struktur NDIS_RECEIVE_QUEUE_PARAMETERS . Setelah berhasil mengembalikan dari permintaan metode OID, anggota InformationBuffer dari struktur NDIS_OID_REQUEST berisi pointer ke struktur NDIS_RECEIVE_QUEUE_PARAMETERS yang memiliki pengidentifikasi antrean baru.
Keterangan
Permintaan metode OID OID_RECEIVE_FILTER_ALLOCATE_QUEUE bersifat opsional untuk driver miniport NDIS 6.20 dan yang lebih baru. Ini wajib untuk driver miniport yang mendukung antarmuka antrean komputer virtual (VMQ).
Driver yang terlalu berlebihan menginisialisasi struktur NDIS_RECEIVE_QUEUE_PARAMETERS dengan konfigurasi antrean yang diminta. NDIS menetapkan pengidentifikasi antrean di anggota QueueId dari struktur NDIS_RECEIVE_QUEUE_PARAMETERS dan meneruskan permintaan metode ke driver miniport.
Catatan Driver yang terlalu berlebihan dapat mengatur bendera NDIS_RECEIVE_QUEUE_PARAMETERS_PER_QUEUE_RECEIVE_INDICATION dan NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED di anggota Bendera struktur NDIS_RECEIVE_QUEUE_PARAMETERS . Bendera lain tidak digunakan untuk alokasi antrean.
Setelah driver miniport mengeluarkan permintaan OID OID_RECEIVE_FILTER_ALLOCATE_QUEUE dan berhasil menanganinya, antrean berada dalam status Dijeda.
Driver yang terlalu berlebihan harus menggunakan pengidentifikasi antrean yang disediakan NDIS dalam permintaan OID berikutnya, misalnya, untuk memodifikasi parameter antrean atau membebaskan antrean. Pengidentifikasi antrean juga disertakan dalam data out-of-band (OOB) pada semua struktur NET_BUFFER_LIST yang terkait dengan antrean. Driver menggunakan makro NET_BUFFER_LIST_RECEIVE_QUEUE_ID untuk mengambil pengidentifikasi antrean dalam struktur NET_BUFFER_LIST .
Ketika NDIS menerima permintaan OID untuk mengalokasikan antrean terima, NDIS memverifikasi parameter antrean. Setelah NDIS mengalokasikan sumber daya yang diperlukan dan pengidentifikasi antrean, NDIS mengirimkan permintaan OID ke driver miniport yang mendasar. Pengidentifikasi antrean unik untuk adaptor jaringan terkait.
Jika driver miniport berhasil mengalokasikan sumber daya perangkat lunak dan perangkat keras yang diperlukan untuk antrean terima, driver tersebut menyelesaikan permintaan OID dengan mengembalikan NDIS_STATUS_SUCCESS.
Driver miniport harus mempertahankan pengidentifikasi antrean untuk antrean penerima yang dialokasikan. NDIS menggunakan pengidentifikasi antrean antrean penerima untuk panggilan berikutnya ke driver miniport untuk mengatur filter terima pada antrean terima, mengubah parameter antrean terima, atau membebaskan antrean terima.
Setelah driver yang terlalu berlebihan mengalokasikan satu atau beberapa antrean terima dan secara opsional mengatur filter awal, driver harus mengeluarkan OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE mengatur permintaan OID untuk memberi tahu driver miniport bahwa alokasi selesai untuk batch antrean penerima saat ini.
Driver miniport tidak boleh menyimpan paket apa pun dalam antrean terima jika tidak ada filter yang diatur pada antrean tersebut. Jika antrean tidak pernah memiliki filter yang ditetapkan atau semua filter dibersihkan, antrean harus kosong dan paket apa pun harus dibuang. Artinya, paket tidak ditunjukkan ke tumpukan driver atau dipertahankan dalam antrean.
Driver yang terlalu mengandalkan menggunakan permintaan OID OID_RECEIVE_FILTER_FREE_QUEUE untuk membebaskan antrean yang mereka alokasikan.
Mengembalikan Kode Status
Baik NDIS atau driver miniport mengembalikan salah satu kode status berikut untuk permintaan metode OID OID_RECEIVE_FILTER_ALLOCATE_QUEUE.
Kode status | Deskripsi |
---|---|
NDIS_STATUS_SUCCESS |
Antrean berhasil dialokasikan. Buffer informasi berisi struktur NDIS_RECEIVE_QUEUE_PARAMETERS yang diperbarui. |
NDIS_STATUS_PENDING |
Permintaan tertunda penyelesaiannya. Kode status akhir dan hasil akan diteruskan ke penangan penyelesaian permintaan OID dari pemanggil. |
NDIS_STATUS_INVALID_PARAMETER |
Satu atau beberapa parameter yang disediakan driver yang terlalu berlebihan 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. |
NDIS_STATUS_NOT_SUPPORTED |
Versi NDIS dari driver miniport lebih lama dari versi 6.20. |
NDIS_STATUS_FAILURE |
Permintaan gagal karena alasan lain. |
Persyaratan
Versi |
Didukung di NDIS 6.20 dan yang lebih baru. |
Header |
Ntddndis.h (termasuk Ndis.h) |
Lihat juga
NET_BUFFER_LIST_RECEIVE_QUEUE_ID