Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
/scan komutu seçeneğini kullanarak sürücüyü tarama isteğe bağlıdır. Sürücünüzü doğrulamadan önce tarama yapmazsanız, SDV işlev rolü türü bildirimlerini tarar ve sürücüyü doğruladığınızda bir Sdv-map.h dosyası oluşturur.
Bu tarama sırasında SDV, sürücüyü doğrulamak için gereken sürücü giriş noktalarını algılamaya çalışır. Taramanın sonuçlarını sürücünün sources dizininde oluşturduğu Sdv-map.h dosyasına kaydeder.
Ancak, SDV'nin doğru giriş noktalarını algıladığından emin olmak için tarama adımından sonra veya doğrulamadan sonra bu dosyayı gözden geçirmeniz çok önemlidir. Giriş noktaları eksik veya yanlışsa doğrulama güvenilir olmayabilir. Daha da önemlisi, SDV herhangi bir giriş noktası algılayamazsa sürücüyü doğrulayamaz.
Her sürücü için yalnızca bir kez taramanız gerekir. Bundan sonra, SDV gelecekteki doğrulamalar için sürücü için Sdv-map.h dosyasını saklar.
Sdv-map.h dosyasını inceleme
Tarama komutunu çalıştırdıktan veya sürücüyü doğruladıktan sonra Sdv-map.h dosyasını açın ve dosyayı inceleyin. Sdv-map.h biçimlendirilmiş bir metin dosyasıdır. Not Defteri gibi herhangi bir metin düzenleyicisini okuyabilirsiniz.
Sdv-map.h dosyasının içeriğini sürücünüz için bildirilen işlev rolü türleriyle karşılaştırın. Sürücünün geri çağırma veya gönderme yordamlarının doğru şekilde tanımlandığını görmek için Sdv-map.h dosyasının içeriğini inceleyin.
Sürücünüzdeki tüm giriş noktalarını listelemek için Sdv-map.h dosyası gerekli değildir; yalnızca analizde kullanılan IRP ana işlev kodları veya işlev rolü türleri için giriş noktaları. Dosyaya hiçbir IRP ana işlev kodu veya işlev rolü türü eklemeyin.
Sdv-map.h dosyası hakkında ayrıntılı bilgi için bkz. Sdv-map.h. Biçim, Sdv-map.h Dosyasının Biçimi bölümünde açıklanmıştır. Sdv-map.h dosyasında görüntülenebilen hatalar Sdv-map.h Dosyasını Onaylama bölümünde açıklanmıştır.
Aşağıdaki örnekte, tools\sdv\samples\fail_drivers\wdm dizinindeki örnek bir WDM sürücüsü olan Fail_driver1 Sdv-map.h dosyasının içeriği gösterilmektedir.
//Approved=false
//DriverAddDevice
#define fun_AddDevice DriverAddDevice
//DriverEntry
#define fun_DriverEntry DriverEntry
//DriverUnload
#define fun_DriverUnload DriverUnload
//CompletionRoutine
#define fun_IO_COMPLETION_ROUTINE_1 CompletionRoutine
//DpcForIsrRoutine
#define fun_IO_DPC_ROUTINE_1 DpcForIsrRoutine
//DispatchCreate
#define fun_IRP_MJ_CREATE DispatchCreate
//DispatchPnp
#define fun_IRP_MJ_PNP DispatchPnp
//DispatchPower
#define fun_IRP_MJ_POWER DispatchPower
//DispatchRead
#define fun_IRP_MJ_READ DispatchRead
//DispatchSystemControl
#define fun_IRP_MJ_SYSTEM_CONTROL DispatchSystemControl
//InterruptServiceRoutine
#define fun_KSERVICE_ROUTINE_1 InterruptServiceRoutine
Sdv-map.h Dosyasını düzeltme
Bir sürücüyü doğrulamadan önce Sdv-map.h dosyasındaki hataları düzeltin. Sdv-map.h dosyası yanlış olsa veya onaylanmasa bile SDV bir sürücüyü doğrular, ancak doğrulama sonuçları güvenilir olmayabilir. Örneğin, karşılık gelen işlev rolü türünü kullanarak bir sürücünün gönderme veya geri çağırma yordamını bildirmezseniz, sürücü yordamı Sdv-map.h dosyasında görünmez. Sonuç olarak, SDV, doğrulama kapsamında bu kuralları belirtmiş olsanız bile işlev rolü türlerini kullanan kuralları geçerli değil olarak değerlendirdiğinden kodunuzdaki hataları bulmayı kaçırabilirsiniz.
Sdv-map.h dosyasını düzeltmek için, sürücünüzün gönderme veya geri çağırma yordamlarının uygun işlev rolü türleri kullanılarak bildirildiğinden emin olun. Ardından sürücüyü yeniden tarayın ve bunların Sdv-map.h dosyasında göründüğünü doğrulayın..
Sdv-map.h dosyasını onaylama
Sdv-map.h dosyasının doğru olduğunu belirledikten sonra, dosyayı onaylayabilirsiniz. Dosyada herhangi bir değişiklik yapmadıysanız, dosyayı onaylamanız gerekmez.
Sdv-map.h dosyası onaylanmasa bile SDV bir sürücüyü doğrular.
Sdv-map.h dosyasını onaylamak için dosyanın ilk satırında şunu değiştirin:
//Approved=false
yerine şunu yazın:
//Approved=true
Sdv-map.h dosyasını her sürücü için yalnızca bir kez onaylamanız gerekir. Bundan sonra SDV, gelecekteki doğrulamalar için sürücü için onaylı Sdv-map.h dosyasını saklar. SDV'nin işlev rolü türü bildirimleri için kaynak kodunuzu yeniden taramasını istiyorsanız, dosyayı silmeniz yeter.
Aşağıdaki örnekte KMDF örnek sürücüsü için onaylanan Sdv-map.h dosyası Fail_Driver1 gösterilmektedir. SDV, sürücünün bildirilen geri çağırma işlevlerini doğrulama için SDV'nin ihtiyaç duyduğu işlev rolü türleriyle eşlemek için Sdv-map.h dosyasını kullanır.
//Approved=true
//DriverEntry
#define fun_DriverEntry DriverEntry
//EvtDriverDeviceAdd
#define fun_WDF_DRIVER_DEVICE_ADD EvtDriverDeviceAdd
//EvtIoDeviceControl
#define fun_WDF_IO_QUEUE_IO_DEVICE_CONTROL EvtIoDeviceControl
//EvtIoInternalDeviceControl
#define fun_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL EvtIoInternalDeviceControl
//EvtIoRead
#define fun_WDF_IO_QUEUE_IO_READ EvtIoRead
//EvtRequestCancel
#define fun_WDF_REQUEST_CANCEL_1 EvtRequestCancel