Bagikan melalui


MINIPORT_OID_REQUEST fungsi panggilan balik (ndis.h)

NDIS memanggil fungsi MiniportOidRequest driver miniport untuk menangani permintaan OID untuk mengkueri atau mengatur informasi di driver.

Catatan Anda harus mendeklarasikan fungsi dengan menggunakan jenis MINIPORT_OID_REQUEST . Untuk informasi selengkapnya, lihat bagian Contoh berikut ini.
 

Sintaks

MINIPORT_OID_REQUEST MiniportOidRequest;

NDIS_STATUS MiniportOidRequest(
  [in] NDIS_HANDLE MiniportAdapterContext,
  [in] PNDIS_OID_REQUEST OidRequest
)
{...}

Parameter

[in] MiniportAdapterContext

Handel ke area konteks yang dialokasikan driver miniport dalam fungsi MiniportInitializeEx-nya . Driver miniport menggunakan area konteks ini untuk mempertahankan informasi status untuk adaptor miniport.

[in] OidRequest

Penunjuk ke struktur NDIS_OID_REQUEST yang berisi buffer dan paket permintaan untuk ditangani driver miniport. Tergantung pada permintaan, driver mengembalikan informasi yang diminta dalam struktur yang disediakan.

Nilai kembali

MiniportOidRequest dapat mengembalikan salah satu nilai status berikut:

Menampilkan kode Deskripsi
NDIS_STATUS_SUCCESS
Driver miniport telah mengatur atau memperoleh data seperti yang diminta.
NDIS_STATUS_PENDING
Driver miniport akan menyelesaikan permintaan secara asinkron. Setelah driver miniport menyelesaikan semua pemrosesan, driver harus memanggil Fungsi NdisMOidRequestComplete untuk memberi tahu NDIS bahwa permintaan selesai.
NDIS_STATUS_INVALID_OID
Permintaan, yang ditentukan di OidRequest, tidak valid atau tidak dikenali.
NDIS_STATUS_NOT_SUPPORTED
Permintaan, yang ditentukan di OidRequest, diakui, tetapi tidak didukung oleh driver miniport.
NDIS_STATUS_BUFFER_TOO_SHORT
Buffer, yang disediakan di OidRequest, terlalu kecil untuk menyimpan data yang diminta.
NDIS_STATUS_INVALID_LENGTH
Nilai yang ditentukan dalam anggota InformationBufferLength dari struktur NDIS_OID_REQUEST di OidRequest salah untuk kode XXX OID_ yang ditentukan.
NDIS_STATUS_INVALID_DATA
Satu atau beberapa parameter yang ditentukan untuk permintaan di OidRequest tidak valid.
NDIS_STATUS_NOT_ACCEPTED
Setelah memanggil Fungsi MiniportDevicePnPEventNotify untuk menunjukkan penghapusan mendadak, NDIS memanggil fungsi MiniportHaltEx driver. Jika driver menerima permintaan OID sebelum NDIS memanggil MiniportHaltEx, driver harus segera menyelesaikan permintaan tersebut dengan nilai status NDIS_STATUS_NOT_ACCEPTED.
NDIS_STATUS_REQUEST_ABORTED
Driver miniport berhenti memproses permintaan. Misalnya, NDIS disebut fungsi MiniportResetEx .
NDIS_STATUS_INDICATION_REQUIRED
Driver miniport akan memberikan status penyelesaian OID dengan indikasi status berikutnya. Driver miniport tidak dapat mengembalikan NDIS_STATUS_INDICATION_REQUIRED kecuali OID tertentu mengizinkannya. Untuk menentukan apakah status ini diizinkan, lihat halaman referensi OID.. Untuk informasi selengkapnya tentang NDIS_STATUS_INDICATION_REQUIRED, lihat NDIS_OID_REQUEST dan NDIS_STATUS_INDICATION.

Keterangan

Driver menentukan titik masuk MiniportOidRequest saat memanggil Fungsi NdisMRegisterMiniportDriver .

NDIS memanggil fungsi MiniportOidRequest baik atas nama sendiri atau atas nama driver protokol terikat yang disebut fungsi NdisOidRequest . Driver miniport harus memeriksa permintaan yang disediakan di OidRequest dan mengambil tindakan yang diminta. Untuk informasi selengkapnya tentang OID yang ditangani driver miniport, lihat OID NDIS.

Perhatikan bahwa NDIS tidak memvalidasi konten khusus OID di OidRequest . Oleh karena itu, driver itu sendiri harus memvalidasi konten-konten ini. Jika driver menentukan bahwa nilai yang akan ditetapkan berada di luar batas, itu harus gagal permintaan dan mengembalikan NDIS_STATUS_INVALID_DATA.

Jika MiniportOidRequest mengembalikan NDIS_STATUS_PENDING, NDIS tidak akan memanggil MiniportOidRequest dengan permintaan lain, untuk adaptor miniport yang ditentukan di MiniportAdapterContext, hingga permintaan tertunda selesai.

Catatan Logika check-for-hang NDIS tidak akan mengatur ulang driver miniport yang tidak merespons jika driver miniport menunggu dalam konteks panggilan MiniportOidRequest . Oleh karena itu, driver miniport tidak boleh menunggu operasi perangkat keras selesai dari dalam konteks panggilan MiniportOidRequest . Sebagai gantinya, driver dapat mengembalikan NDIS_STATUS_PENDING dan mengantre item kerja.
 
NDIS memanggil MiniportOidRequest di IRQL == PASSIVE_LEVEL .

Contoh

Untuk menentukan fungsi MiniportOidRequest , Anda harus terlebih dahulu memberikan deklarasi fungsi yang mengidentifikasi jenis fungsi yang Anda tentukan. Windows menyediakan sekumpulan tipe fungsi untuk pengandar. Mendeklarasikan fungsi menggunakan jenis fungsi membantu Analisis Kode untuk Driver, Pemverifikasi Driver Statis (SDV), dan alat verifikasi lainnya menemukan kesalahan, dan itu adalah persyaratan untuk menulis driver untuk sistem operasi Windows.

Misalnya, untuk menentukan fungsi MiniportOidRequest yang diberi nama "MyOidRequest", gunakan jenis MINIPORT_OID_REQUEST seperti yang ditunjukkan dalam contoh kode ini:

MINIPORT_OID_REQUEST MyOidRequest;

Kemudian, terapkan fungsi Anda sebagai berikut:

_Use_decl_annotations_
NDIS_STATUS
 MyOidRequest(
    NDIS_HANDLE  MiniportAdapterContext,
    PNDIS_OID_REQUEST  OidRequest
    )
  {...}

Jenis fungsi MINIPORT_OID_REQUEST ditentukan dalam file header Ndis.h. Untuk mengidentifikasi kesalahan secara lebih akurat saat Anda menjalankan alat analisis kode, pastikan untuk menambahkan anotasi Use_decl_annotations ke definisi fungsi Anda. Anotasi Use_decl_annotations memastikan bahwa anotasi yang diterapkan ke jenis fungsi MINIPORT_OID_REQUEST dalam file header digunakan. Untuk informasi selengkapnya tentang persyaratan untuk deklarasi fungsi, lihat Mendeklarasikan Fungsi dengan Menggunakan Jenis Peran Fungsi untuk Driver NDIS.

Untuk informasi tentang Use_decl_annotations, lihat Perilaku Fungsi Anotasi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Didukung di NDIS 6.0 dan yang lebih baru.
Target Platform Windows
Header ndis.h (termasuk Ndis.h)
IRQL PASSIVE_LEVEL
Aturan kepatuhan DDI NdisOidComplete, NdisOidDoubleComplete, NdisOidDoubleRequest, NdisTimedOidComplete, WlanAssociation, WlanDisassociation, WlanTimedAssociation, WlanTimedConnectionRoaming, WlanTimedConnectRequest, WlanTimedLinkQuality, WlanTimedScan

Lihat juga

MiniportDevicePnPEventNotify

MiniportHaltEx

MiniportInitializeEx

MiniportOidRequest

MiniportResetEx

NDIS_OID_REQUEST

NDIS_STATUS_INDICATION

NdisMOidRequestComplete

NdisMRegisterMiniportDriver

NdisOidRequest