Fungsi NdisOidRequest (ndis.h)

Fungsi NdisOidRequest meneruskan permintaan ke driver yang mendasar untuk mengkueri kemampuan atau status adaptor atau mengatur status adaptor.

Sintaks

NDIS_STATUS NdisOidRequest(
  [in] NDIS_HANDLE       NdisBindingHandle,
  [in] PNDIS_OID_REQUEST OidRequest
);

Parameter

[in] NdisBindingHandle

Handel yang dikembalikan oleh fungsi NdisOpenAdapterEx yang mengidentifikasi adaptor target pada pengikatan.

[in] OidRequest

Penunjuk ke struktur NDIS_OID_REQUEST yang menentukan operasi yang diminta dengan kode OID_XXX tertentu untuk mengkueri status adaptor atau untuk mengatur status adaptor.

Nilai kembali

Driver yang mendasar menentukan kode NDIS_STATUS_XXX mana yang dikembalikan NdisOidRequest , tetapi biasanya merupakan salah satu nilai berikut:

Menampilkan kode Deskripsi
NDIS_STATUS_SUCCESS
Operasi permintaan berhasil diselesaikan.
NDIS_STATUS_PENDING
Permintaan sedang ditangani secara asinkron, dan NDIS akan memanggil pemanggil Fungsi ProtocolOidRequestComplete ketika permintaan selesai.
NDIS_STATUS_INVALID_OID
Kode OID_XXX yang ditentukan dalam anggota Oid dari buffer terstruktur NDIS_OID_REQUEST di OidRequest tidak valid atau tidak didukung oleh driver yang mendasar.
NDIS_STATUS_INVALID_LENGTH atau NDIS_STATUS_BUFFER_TOO_SHORT
Nilai yang ditentukan dalam anggota InformationBufferLength dari buffer terstruktur NDIS_OID_REQUEST di OidRequest tidak cocok dengan persyaratan untuk kode OID_XXXX yang diberikan. Jika buffer informasi terlalu kecil, anggota BytesNeeded berisi nilai yang benar untuk InformationBufferLength saat dikembalikan dari NdisOidRequest.
NDIS_STATUS_INVALID_DATA
Data yang disediakan di InformationBuffer dalam struktur NDIS_OID_REQUEST yang diberikan tidak valid untuk kode OID_XXX yang diberikan.
NDIS_STATUS_NOT_SUPPORTED atau NDIS_STATUS_NOT_RECOGNIZED
Driver yang mendasar tidak mendukung operasi yang diminta.
NDIS_STATUS_RESOURCES
Permintaan tidak dapat dipenuhi karena kekurangan sumber daya. Biasanya, nilai pengembalian ini menunjukkan bahwa upaya untuk mengalokasikan memori tidak berhasil, tetapi tidak selalu menunjukkan bahwa permintaan yang sama, yang dikirimkan nanti, akan gagal karena alasan yang sama.
NDIS_STATUS_NOT_ACCEPTED
Driver yang mendasar mencoba operasi yang diminta, biasanya satu set pada NIC, tetapi gagal. Misalnya, upaya untuk mengatur terlalu banyak alamat multicast dapat menyebabkan pengembalian nilai ini.
NDIS_STATUS_CLOSING atau NDIS_STATUS_CLOSING_INDICATING
Driver yang mendasar gagal dalam operasi yang diminta karena operasi penutupan sedang berlangsung.
NDIS_STATUS_RESET_IN_PROGRESS
Driver miniport yang mendasar tidak dapat memenuhi permintaan saat ini karena saat ini sedang mengatur ulang NIC yang terpengaruh. Fungsi ProtocolStatusEx penelepon adalah atau akan dipanggil dengan NDIS_STATUS_RESET_START untuk menunjukkan bahwa reset sedang berlangsung. Nilai pengembalian ini tidak selalu menunjukkan bahwa permintaan yang sama, yang dikirimkan nanti, akan gagal karena alasan yang sama.
NDIS_STATUS_FAILURE
Nilai ini biasanya merupakan default nonspesfik, dikembalikan ketika tidak ada NDIS_STATUS_XXXX yang lebih spesifik yang menyebabkan driver yang mendasar gagal dalam permintaan.

Keterangan

Driver protokol harus mengalokasikan memori yang cukup untuk menahan buffer informasi yang terkait dengan OID yang ditentukan. Driver juga harus mengalokasikan dan mengatur buffer di OidRequest sebelum memanggil NdisOidRequest. Kedua buffer harus dialokasikan dari kumpulan yang tidak bertumpuk karena driver yang mendasarinya berjalan pada IRQL yang dinaikkan saat memproses permintaan.

NdisOidRequest meneruskan permintaan ke driver yang mendasar atau menangani permintaan itu sendiri.. Jika driver berikutnya yang lebih rendah adalah driver perantara NDIS, driver dapat memanggil NdisOidRequest dengan permintaan khusus OID sendiri sebelum menyelesaikan permintaan yang awalnya dikirimkan oleh driver tingkat yang lebih tinggi.

Beberapa kesalahan yang dikembalikan dapat dipulihkan, termasuk yang berikut ini:

Artinya, driver dapat memodifikasi paket di OidRequest dengan tepat untuk memperbaiki kode OID_XXX atau ukuran atau konten buffer di InformationBuffer dan mengirim ulang paket permintaan ke NdisOidRequest. Paket yang sama mungkin terpenuhi pada pengiriman ulang ke NdisOidRequest jika panggilan asli menunjukkan reset sedang berlangsung atau bahwa kekurangan sumber daya, yang mungkin bersifat sementara, mencegah permintaan tersebut dilakukan.

Pustaka NDIS mempertahankan pengikatan untuk driver miniport yang mendasar. NDIS dapat mengembalikan informasi untuk kueri khusus pengikatan jika OID tertentu dikaitkan dengan jenis sedang yang ditentukan sistem yang sistemnya menyediakan pustaka filter.

Untuk informasi selengkapnya tentang OID umum dan khusus media dan buffer informasi terkait masing-masing, lihat OID NDIS.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Didukung di NDIS 6.0 dan yang lebih baru.
Target Platform Desktop
Header ndis.h (termasuk Ndis.h)
Pustaka Ndis.lib
IRQL <= DISPATCH_LEVEL
Aturan kepatuhan DDI Irql_OID_Function(ndis)

Lihat juga

NDIS_OID_REQUEST

NdisOpenAdapterEx

ProtocolOidRequestComplete

ProtocolStatusEx