MINIPORT_CO_OID_REQUEST fungsi panggilan balik (ndis.h)
Fungsi MiniportCoOidRequest menangani permintaan OID untuk mengkueri atau mengatur informasi di driver miniport CoNDIS.
Sintaks
MINIPORT_CO_OID_REQUEST MiniportCoOidRequest;
NDIS_STATUS MiniportCoOidRequest(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] NDIS_HANDLE MiniportVcContext,
PNDIS_OID_REQUEST NdisRequest
)
{...}
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] MiniportVcContext
Handel ke area konteks yang dialokasikan driver miniport di mana driver miniport mempertahankan status koneksi per virtual (VC). Driver miniport menyediakan handel ini ke NDIS dari fungsi MiniportCoCreateVc-nya . Jika permintaan tidak spesifik VC, parameter ini ADALAH NULL.
NdisRequest
Penunjuk ke struktur NDIS_OID_REQUEST yang berisi buffer dan paket permintaan untuk ditangani driver miniport. Bergantung pada permintaan, driver mengembalikan informasi yang diminta dalam struktur yang dituju parameter ini.
Nilai kembali
MiniportCoOidRequest dapat mengembalikan salah satu nilai status berikut:
Menampilkan kode | Deskripsi |
---|---|
|
Driver miniport mengatur atau memperoleh data seperti yang diminta. |
|
Driver miniport akan menyelesaikan permintaan secara asinkron. Setelah driver miniport menyelesaikan semua pemrosesan, driver harus memanggil Fungsi NdisMCoOidRequestComplete untuk memberi tahu NDIS bahwa permintaan selesai. |
|
Permintaan yang ditentukan parameter OidRequest tidak valid atau tidak dikenali. |
|
Permintaan yang ditentukan parameter OidRequest diakui tetapi tidak didukung oleh driver miniport. |
|
Buffer yang disediakan parameter OidRequest terlalu kecil untuk menyimpan data yang diminta. |
|
Nilai yang ditentukan dalam anggota InformationBufferLength dari struktur NDIS_OID_REQUEST di OidRequest salah untuk kode OID_XXX yang ditentukan. |
|
Satu atau beberapa parameter yang ditentukan untuk permintaan di OidRequest iwas tidak valid. |
|
Setelah NDIS 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 yang disebut MiniportResetEx atau Fungsi MiniportCancelOidRequest . |
Keterangan
NDIS memanggil fungsi MiniportCoOidRequest untuk menangani permintaan OID untuk mengkueri atau mengatur informasi dalam driver miniport CoNDIS.
Untuk mendaftarkan MiniportCoOidRequest, driver miniport memanggil fungsi NdisSetOptionalHandlers dari fungsi MiniportSetOptions . Di MiniportSetOptions, driver miniport menginisialisasi NDIS_MINIPORT_CO_CHARACTERISTICS struktur dan meneruskannya di parameter OptionalHandlersdari NdisSetOptionalHandlers.
NDIS memanggil fungsi MiniportCoOidRequest baik atas nama sendiri atau atas nama driver protokol terikat yang memanggil fungsi NdisCoOidRequest . 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 MiniportCoOidRequest mengembalikan NDIS_STATUS_PENDING, NDIS dapat memanggil MiniportCoOidRequest dengan permintaan lain, untuk adaptor miniport yang ditentukan di MiniportAdapterContext, sebelum permintaan tertunda selesai. NDIS tidak membuat serialisasi permintaan OID berorientasi koneksi.
Contoh
Untuk menentukan fungsi MiniportCoOidRequest , 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 MiniportCoOidRequest yang diberi nama "MyCoOidRequest", gunakan jenis MINIPORT_CO_OID_REQUEST seperti yang ditunjukkan dalam contoh kode ini:
MINIPORT_CO_OID_REQUEST MyCoOidRequest;
Kemudian, terapkan fungsi Anda sebagai berikut:
_Use_decl_annotations_
NDIS_STATUS
MyCoOidRequest(
NDIS_HANDLE MiniportAdapterContext,
NDIS_HANDLE MiniportVcContext,
PNDIS_OID_REQUEST OidRequest
)
{...}
Jenis fungsi MINIPORT_CO_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_CO_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 | <= DISPATCH_LEVEL |
Lihat juga
MiniportDevicePnPEventNotify NDIS_MINIPORT_CO_CHARACTERISTICSSaran 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