Bagikan melalui


Fungsi NdisIMInitializeDeviceInstanceEx (ndis.h)

Fungsi NdisIMInitializeDeviceInstanceEx memulai operasi inisialisasi untuk miniport virtual dan secara opsional menyiapkan informasi status tentang miniport virtual untuk driver protokol yang kemudian terikat.

Sintaks

NDIS_STATUS NdisIMInitializeDeviceInstanceEx(
  [in]           NDIS_HANDLE  DriverHandle,
  [in]           PNDIS_STRING DriverInstance,
  [in, optional] NDIS_HANDLE  DeviceContext
);

Parameter

[in] DriverHandle

Driver miniport menangani bahwa Fungsi NdisMRegisterMiniportDriver kembali di NdisMiniportDriverHandle .

[in] DriverInstance

Penunjuk ke jenis NDIS_STRING yang menjelaskan string terhitung yang diinisialisasi penelepon dalam kumpulan karakter default sistem. String berisi nama kunci registri tempat driver menyimpan informasi tentang miniport virtual dan, mungkin, informasi khusus pengikatan. Untuk driver Microsoft Windows 2000 dan yang lebih baru, string ini berisi karakter Unicode. Artinya, untuk Windows 2000 dan yang lebih baru, NDIS mendefinisikan jenis NDIS_STRING sebagai jenis UNICODE_STRING .

[in, optional] DeviceContext

Penunjuk ke memori yang disediakan pemanggil untuk disiapkan dengan informasi konteks perangkat yang ditentukan driver tentang miniport virtual, yang masih memiliki tingkat driver protokol yang lebih tinggi yang kemudian mengikat diri mereka ke miniport virtual ini dapat digunakan. Parameter ini bisa NULL jika driver perantara tidak memiliki area konteks perangkat tersebut.

Nilai kembali

NdisIMInitializeDeviceInstanceEx dapat mengembalikan salah satu hal berikut:

Menampilkan kode Deskripsi
NDIS_STATUS_SUCCESS
NDIS memulai operasi inisialisasi untuk miniport virtual driver perantara.
NDIS_STATUS_NOT_ACCEPTED
NdisIMInitializeDeviceInstanceEx gagal karena perangkat yang ditentukan oleh DriverHandle telah diinisialisasi.

Keterangan

Driver perantara NDIS harus memanggil NdisIMInitializeDeviceInstanceEx dari fungsi ProtocolBindAdapterEx-nya . Kegagalan untuk memanggil NdisIMInitializeDeviceInstanceEx dari driver perantara NDIS secara efektif mencegah driver tersebut berhasil dimuat.

Sebelum memanggil NdisIMInitializeDeviceInstanceEx, fungsi ProtocolBindAdapterEx driver menengah harus mengikat driver miniport yang mendasar yang diperlukan agar driver perantara berfungsi. Fungsi ProtocolBindAdapterEx juga dapat mengalokasikan area di DeviceContext , mungkin menyiapkannya dengan informasi menengah yang ditentukan driver tentang kemampuan adaptor miniport yang mendasar dan yang dikumpulkan oleh ProtocolBindAdapterEx. Fungsi MiniportInitializeEx driver menengah dapat menggunakan informasi tersebut kemudian untuk mengatur area konteks ini dengan informasi tentang miniport virtual driver.

Panggilan driver menengah ke NdisIMInitializeDeviceInstanceEx menyebabkan NDIS memanggil fungsi MiniportInitializeEx driver menengah, jika NDIS menerima IRP IRP_MN_START_DEVICE untuk memulai perangkat. Jika NDIS tidak menerima IRP seperti itu, NDIS tidak akan memanggil fungsi MiniportInitializeEx driver perantara.

Panggilan ke MiniportInitializeEx dapat terjadi di lain waktu dan oleh karena itu tidak selalu dalam konteks panggilan ke NdisIMInitializeDeviceInstanceEx. Jika NDIS tidak pernah memanggil MiniportInitializeEx untuk miniport virtual yang direferensikan dalam panggilan ke NdisIMInitializeDeviceInstanceEx dan driver perantara tidak lagi memerlukan miniport virtual, driver perantara harus memanggil Fungsi NdisIMCancelInitializeDeviceInstance untuk membatalkan inisialisasi miniport virtual. Misalnya, misalkan driver perantara membuat miniport virtual sebagai respons terhadap pengikatan yang berhasil ke adaptor miniport yang mendasar. Jika pengikatan tersebut dihapus sebelum NDIS memanggil MiniportInitializeEx, driver perantara harus memanggil NdisIMCancelInitializeDeviceInstance untuk membatalkan inisialisasi miniport virtual.

MiniportInitializeEx mengalokasikan sumber daya apa pun yang diperlukan driver untuk melakukan operasi I/O jaringan, seperti memanggil Fungsi NdisMSetMiniportAttributes , dan untuk menginisialisasi miniport virtual driver ke status operasional. Kemudian, driver protokol tingkat yang lebih tinggi dapat mengikat diri mereka ke miniport virtualnya ketika inisialisasi driver perantara berhasil diselesaikan.

Setelah MiniportInitializeEx mengembalikan kontrol, area konteks perangkat driver perantara, jika ada, dapat berisi data yang ditentukan driver menengah yang kemudian memungkinkan semua driver protokol tingkat lebih tinggi yang terikat ke miniport virtual yang sama untuk mengakses informasi di area konteks tersebut. Driver protokol tingkat yang lebih tinggi seperti itu dapat mengkueri konteks perangkat yang disediakan driver perantara dengan Fungsi NdisIMGetBindingContext .

Sebelum NDIS memanggil fungsi MiniportInitializeEx driver perantara, driver dapat memanggil NdisIMCancelInitializeDeviceInstance untuk membatalkan operasi inisialisasi.

Setelah NDIS memanggil fungsi MiniportInitializeEx driver perantara, driver harus memanggil NdisIMDeInitializeDeviceInstance untuk membalikkan operasi inisialisasi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Didukung untuk driver NDIS 6.0 dan NDIS 5.1 (lihat NdisIMInitializeDeviceInstanceEx (NDIS 5.1)) di Windows Vista. Didukung untuk driver NDIS 5.1 (lihat NdisIMInitializeDeviceInstanceEx (NDIS 5.1)) di Windows XP.
Target Platform Desktop
Header ndis.h (termasuk Ndis.h)
Pustaka Ndis.lib
IRQL PASSIVE_LEVEL
Aturan kepatuhan DDI Irql_IM_Function(ndis)

Lihat juga

IRP_MN_START_DEVICE

MiniportInitializeEx

NdisAllocateMemoryWithTagPriority NdisIMCancelInitializeDeviceInstance NdisIMDeInitializeDeviceInstance

NdisIMGetBindingContext

NdisIMInitializeDeviceInstanceEx

NdisInitializeString

NdisMRegisterMiniportDriver

NdisMSetMiniportAttributes

NdisOpenAdapterEx

ProtocolBindAdapterEx

UNICODE_STRING