Bagikan melalui


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

NDIS_OID_REQUEST

NET_BUFFER_LIST

NET_BUFFER_LIST_RECEIVE_QUEUE_ID

OID_RECEIVE_FILTER_FREE_QUEUE

OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE

NDIS_RECEIVE_QUEUE_PARAMETERS