MINIPORT_CO_OID_REQUEST fungsi panggilan balik (ndis.h)

Fungsi MiniportCoOidRequest menangani permintaan OID untuk mengkueri atau mengatur informasi di driver miniport CoNDIS.

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

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
NDIS_STATUS_SUCCESS
Driver miniport 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 NdisMCoOidRequestComplete untuk memberi tahu NDIS bahwa permintaan selesai.
NDIS_STATUS_INVALID_OID
Permintaan yang ditentukan parameter OidRequest tidak valid atau tidak dikenali.
NDIS_STATUS_NOT_SUPPORTED
Permintaan yang ditentukan parameter OidRequest diakui tetapi tidak didukung oleh driver miniport.
NDIS_STATUS_BUFFER_TOO_SHORT
Buffer yang disediakan parameter 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 OID_XXX yang ditentukan.
NDIS_STATUS_INVALID_DATA
Satu atau beberapa parameter yang ditentukan untuk permintaan di OidRequest iwas tidak valid.
NDIS_STATUS_NOT_ACCEPTED
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.
NDIS_STATUS_REQUEST_ABORTED
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

MiniportCancelOidRequest

MiniportCoCreateVc

MiniportDevicePnPEventNotify

MiniportHaltEx

MiniportInitializeEx

MiniportResetEx

MiniportSetOptions

NDIS_MINIPORT_CO_CHARACTERISTICS

NDIS_OID_REQUEST

NdisCooidRequest

NdismCooidRequestComplete

NdisSetOptionalHandlers