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.
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 |
---|---|
|
Driver miniport telah mengatur atau memperoleh data seperti yang diminta. |
|
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. |
|
Permintaan, yang ditentukan di OidRequest, tidak valid atau tidak dikenali. |
|
Permintaan, yang ditentukan di OidRequest, diakui, tetapi tidak didukung oleh driver miniport. |
|
Buffer, yang disediakan di OidRequest, terlalu kecil untuk menyimpan data yang diminta. |
|
Nilai yang ditentukan dalam anggota InformationBufferLength dari struktur NDIS_OID_REQUEST di OidRequest salah untuk kode XXX OID_ yang ditentukan. |
|
Satu atau beberapa parameter yang ditentukan untuk permintaan di OidRequest tidak valid. |
|
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. |
|
Driver miniport berhenti memproses permintaan. Misalnya, NDIS disebut fungsi MiniportResetEx . |
|
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.
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
MiniportDevicePnPEventNotifySaran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk