Fungsi NdisRequest (ndis.h)

Catatan NDIS 5. x telah ditolak dan digantikan oleh NDIS 6. x. Untuk pengembangan driver NDIS baru, lihat Driver Jaringan Yang Dimulai dengan Windows Vista. Untuk informasi tentang port NDIS 5. x driver ke NDIS 6. x, lihat Memindahkan Driver NDIS 5.x ke NDIS 6.0.

NdisRequest meneruskan permintaan ke driver yang mendasar bahwa ia meminta kemampuan atau status NIC-nya atau mengatur status NIC-nya.

Sintaks

void NdisRequest(
  [out] PNDIS_STATUS  Status,
  [in]  NDIS_HANDLE   NdisBindingHandle,
  [in]  PNDIS_REQUEST NdisRequest
);

Parameter

[out] Status

Penunjuk ke variabel yang disediakan penelepon yang diatur saat dikembalikan dari fungsi ini. Driver yang mendasar menentukan NDIS_STATUS_XXX mana yang dikembalikan, tetapi biasanya merupakan salah satu nilai berikut:

  • NDIS_STATUS_SUCCESS
    Operasi yang diminta berhasil diselesaikan.

  • NDIS_STATUS_PENDING
    Permintaan sedang ditangani secara asinkron, dan fungsi ProtocolRequestComplete penelepon akan dipanggil ketika selesai.

  • NDIS_STATUS_INVALID_OID
    Kode OID_XXX yang ditentukan dalam anggota Oid dari buffer terstruktur NDIS_REQUEST di NdisRequest 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_REQUEST di NdisRequest tidak cocok dengan persyaratan untuk kode OID_XXX yang diberikan. Jika buffer informasi terlalu kecil, anggota BytesNeeded berisi nilai yang benar untuk InformationBufferLength saat dikembalikan dari NdisRequest.

  • NDIS_STATUS_INVALID_DATA
    Data yang disediakan di InformationBuffer dalam struktur NDIS_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, 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-nya tetapi gagal oleh netcard. 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 penutupan sedang berlangsung.

  • NDIS_STATUS_RESET_IN_PROGRESS
    Driver NIC yang mendasar tidak dapat memenuhi permintaan saat ini karena saat ini sedang mengatur ulang netcard. Fungsi ProtocolStatus 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.

[in] NdisBindingHandle

Menentukan handel yang dikembalikan oleh NdisOpenAdapter yang mengidentifikasi NIC target atau adaptor virtual driver berikutnya yang lebih rendah tempat pemanggil terikat.

[in] NdisRequest

Penunjuk ke struktur buffer yang menentukan operasi yang diminta dengan kode OID_ XXX tertentu untuk kueri atau set.

Nilai kembali

Tidak ada

Keterangan

Driver protokol harus mengalokasikan memori yang cukup untuk buffer informasi yang terkait dengan OID_XXX dari operasi yang akan dimintanya. Driver juga harus mengalokasikan dan mengatur buffer di NdisRequest sebelum memanggil NdisRequest. Kedua buffer harus dialokasikan dari kumpulan yang tidak bertumpuk karena driver yang mendasarinya berjalan pada IRQL yang dinaikkan saat memproses permintaan.

Untuk pemanggil yang berlapis di atas driver NDIS perantara, NdisRequest meneruskan permintaan ke driver yang lebih rendah berikutnya bahwa ia mengembalikan informasi tentang kemampuannya sendiri atau mengarahkan driver tersebut untuk menangani fungsionalitas tertentu dengan cara yang ditentukan pemanggil. Jika driver berikutnya yang lebih rendah adalah driver perantara NDIS, driver tersebut dapat memanggil NdisRequest dengan permintaan khusus OID sendiri sebelum menyelesaikan permintaan yang awalnya diajukan oleh protokol tingkat yang lebih tinggi.

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

NDIS_STATUS_INVALID_OID

NDIS_STATUS_INVALID_LENGTH

NDIS_STATUS_BUFFER_TOO_SHORT

NDIS_STATUS_INVALID_DATA

NDIS_STATUS_RESOURCES

NDIS_STATUS_RESET_IN_PROGRESS

Artinya, driver dapat memodifikasi paket di NdisRequest dengan tepat untuk memperbaiki kode OID_XXX dan/atau ukuran atau konten buffer di InformationBuffer dan mengirim ulang paket permintaan ke NdisRequest. Paket yang sama mungkin terpenuhi pada pengiriman ulang ke NdisRequest 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 Pengidentifikasi Objek NDIS.

  • Platform target: Universal
  • Versi: Tidak didukung untuk driver NDIS 6.0 di Windows Vista. Gunakan NdisOidRequestsebagai gantinya. Didukung untuk driver NDIS 5.1 di Windows Vista dan Windows XP.

Persyaratan

Persyaratan Nilai
Header ndis.h (termasuk Ndis.h)
Pustaka Ndis.lib
IRQL IRQL <= DISPATCH_LEVEL

Lihat juga