Aracılığıyla paylaş


MiniPort Sürücüsü Başlatma

Bir ağ cihazı kullanılabilir olduğunda, sistem cihazı yönetmek için NDIS miniport sürücüsünü yükler (sürücü zaten yüklü değilse). Her miniport sürücüsünün bir DriverEntry işlevi sağlaması gerekir. Sistem, sürücüyü yükledikten sonra DriverEntry'yi çağırır. DriverEntry , miniport sürücüsünün özelliklerini NDIS'ye kaydeder (desteklenen NDIS sürümü ve sürücü giriş noktaları dahil).

Sistem, DriverEntryiki bağımsız değişkeni geçirir:

  • Sürücü nesnesine işaret eden ve G/Ç sistemi tarafından oluşturulan bir işaretçi.

  • Sürücüye özgü parametrelerin depolandığı yeri belirten kayıt defteri yolunun işaretçisi.

DriverEntry'de, miniport sürücüleri NdisMRegisterMiniportDriver işlevine yapılan bir çağrıda bu işaretçilerin ikisini de geçirir. Miniport sürücüleri, giriş noktalarını bir NDIS_MINIPORT_DRIVER_CHARACTERISTICS yapısında depolayarak ve bu yapıyı NdisMRegisterMiniportDriver'a geçirerek bir dizi standart MiniportXxx işlevini dışarı aktarır.

Miniport sürücüleri için DriverEntry, NdisMRegisterMiniportDriver çağrısı tarafından döndürülen değeri döndürür.

Bir miniport sürücüsü, DriverEntry'de gerekli olan diğer sürücüye özgü başlatma işlemlerini de gerçekleştirir. Sürücü MiniportInitializeEx işlevinde bağdaştırıcıya özgü başlatma gerçekleştirir. Bağdaştırıcı başlatma hakkında daha fazla bilgi için bkz. Bağdaştırıcı başlatma.

DriverEntry, NDIS kitaplığı ilgili bilgileri kendi depolama alanına kopyaladığı için yığındaki NDIS_MINIPORT_DRIVER_CHARACTERISTICS yapıyı ayırabilir. DriverEntry, üyelerinde sürücü tarafından sağlanan değerleri ayarlamadan önce bu yapı için belleği NdisZeroMemory ile sıfırlamalıdır. MajorNdisVersion ve MinorNdisVersion üyeleri, sürücünün desteklediği ana ve ikincil NDIS sürümlerini içermelidir. Özellik yapısının her Xxxİşleyicisi üyesinde DriverEntry , sürücü tarafından sağlanan MiniportXxx işlevinin giriş noktasını ayarlamalı veya üye NULL olmalıdır.

Bir miniport sürücüsünün isteğe bağlı hizmetleri yapılandırmasına olanak tanımak için NDIS, miniport sürücüsünün NdisMRegisterMiniportDriver çağrısı bağlamında MiniportSetOptions işlevini çağırır. İsteğe bağlı hizmetler hakkında daha fazla bilgi için bkz. İsteğe Bağlı MiniPort Sürücü Hizmetlerini Yapılandırma.

NdisMRegisterMiniportDriver'ı çağıran sürücülerin, DriverEntry geri döndükten sonra istedikleri zaman MiniportInitializeEx işlevlerini çağırması için NDIS'ye hazır olması gerekir. Böyle bir sürücü, sürücünün ağ G/Ç işlemlerini gerçekleştirmek için ihtiyaç duyacağı NIC'ye özgü kaynakları ayarlamak için kayıt defterinde depolanan veya NdisXxx veri yolu türüne özgü yapılandırma işlevine yapılan çağrılarda yeterli yükleme ve yapılandırma bilgilerine sahip olmalıdır.

Miniport sürücüsünün sonunda NdisMRegisterMiniportDriver çağrısı yaparak ayırdığı kaynakları serbest bırakmak için NdisMDeregisterMiniportDriver'ı çağırması gerekir. NdisMRegisterMiniportDriver çağrısı başarılı olduktan sonra sürücü başlatma başarısız olursa, sürücü DriverEntry içinden NdisMDeregisterMiniportDriver'ı çağırabilir. Aksi takdirde, miniport sürücüsünün MiniportDriverUnload işlevinde ayırmış olduğu sürücüye özgü kaynakları serbest bırakması gerekir. Başka bir deyişle, NdisMRegisterMiniportDriver NDIS_STATUS_SUCCESS döndürmezse , DriverEntry'nin denetimi döndürmeden önce ayırdığı tüm kaynakları serbest bırakması gerekir. Bu durumda sürücü yüklenmez. Daha fazla bilgi için bkz. MiniPort Sürücüsünü Kaldırma.