Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het scannen van het stuurprogramma met de opdrachtoptie /scan is optioneel. Als u niet scant voordat u uw stuurprogramma controleert, scant SDV de declaraties van het functieroltype en maakt een Sdv-map.h-bestand aan wanneer u het stuurprogramma controleert.
Tijdens deze scan probeert SDV de ingangspunten van het stuurprogramma te detecteren die nodig zijn om het stuurprogramma te verifiëren. Het registreert de resultaten van de scan in Sdv-map.h, een bestand dat wordt gemaakt in de bronmap van het stuurprogramma.
Het is echter erg belangrijk dat u dit bestand controleert, na de scanstap of na de verificatie, om ervoor te zorgen dat SDV de juiste toegangspunten heeft gedetecteerd. Als de toegangspunten ontbreken of onjuist zijn, is de verificatie mogelijk niet betrouwbaar. Nog belangrijker is dat als SDV geen toegangspunten kan detecteren, de driver niet kan worden geverifieerd.
U hoeft slechts één keer te scannen voor elke driver. Daarna behoudt SDV het bestand Sdv-map.h voor het stuurprogramma voor toekomstige verificaties.
Het bestand Sdv-map.h onderzoeken
Nadat u een scanopdracht hebt uitgevoerd of het stuurprogramma hebt gecontroleerd, opent u het bestand Sdv-map.h en onderzoekt u het bestand. Sdv-map.h is een opgemaakt tekstbestand. U kunt het lezen met elke teksteditor, zoals Kladblok.
Vergelijk de inhoud van het bestand Sdv-map.h met de gedeclareerde functieroltypen voor uw stuurprogramma. Bekijk de inhoud van het bestand Sdv-map.h om te zien dat de callback- of dispatchroutines van het stuurprogramma correct zijn geïdentificeerd.
Het bestand Sdv-map.h is niet vereist om alle toegangspunten in uw stuurprogramma weer te geven; alleen de toegangspunten voor de primaire IRP-functiecodes of functieroltypen die in de analyse worden gebruikt. Voeg geen primaire IRP-functiecodes of functieroltypen toe aan het bestand.
Zie Sdv-map.h voor gedetailleerde informatie over het bestand Sdv-map.h. De indeling wordt beschreven in de indeling van het Bestand Sdv-map.h. De fouten die kunnen worden weergegeven in het bestand Sdv-map.h, worden beschreven in Het goedkeuren van het bestand Sdv-map.h.
In het volgende voorbeeld ziet u de inhoud van het bestand Sdv-map.h uit Fail_driver1, een voorbeeld van een WDM-stuurprogramma in de map tools\sdv\samples\fail_drivers\wdm.
//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
Corrigeer het bestand Sdv-map.h
Voordat u een stuurprogramma controleert, corrigeert u eventuele fouten in het bestand Sdv-map.h. SDV controleert een stuurprogramma, zelfs als het bestand Sdv-map.h onjuist is of niet is goedgekeurd, maar de resultaten van de verificatie zijn mogelijk niet betrouwbaar. Als u bijvoorbeeld de verzend- of callbackroutine van een stuurprogramma niet declareert met behulp van het bijbehorende functieroltype, wordt de routine van het stuurprogramma niet weergegeven in het bestand Sdv-map.h. Daarom kunt u fouten in uw code missen omdat SDV regels beschouwt die functieroltypen gebruiken als niet van toepassing, zelfs als u deze regels hebt opgegeven als onderdeel van de verificatie.
Als u een Sdv-map.h-bestand wilt corrigeren, moet u ervoor zorgen dat de dispatch- of callback-routines van uw stuurprogramma worden gedeclareerd met behulp van de juiste functieroltypen. Scan vervolgens het stuurprogramma opnieuw en controleer of deze worden weergegeven in het bestand Sdv-map.h.
Het bestand Sdv-map.h goedkeuren
Nadat u hebt vastgesteld dat het bestand Sdv-map.h juist is, kunt u het bestand goedkeuren. Als u geen wijzigingen hebt aangebracht in het bestand, hoeft u het niet goed te keuren.
SDV controleert een stuurprogramma, zelfs als het bestand Sdv-map.h niet is goedgekeurd.
Als u het bestand Sdv-map.h wilt goedkeuren, wijzigt u op de eerste regel van het bestand:
//Approved=false
Aan:
//Approved=true
U hoeft het bestand Sdv-map.h slechts eenmaal goed te keuren voor elk stuurprogramma. Daarna behoudt SDV het goedgekeurde Sdv-map.h-bestand voor het stuurprogramma voor toekomstige verificaties. Als u wilt dat SDV uw broncode opnieuw scant op declaraties van functieroltypen, verwijdert u het bestand.
In het volgende voorbeeld ziet u het goedgekeurde Sdv-map.h-bestand voor het KMDF-voorbeeldstuurprogramma, Fail_Driver1. SDV gebruikt het bestand Sdv-map.h om de gedeclareerde callbackfuncties van het stuurprogramma te koppelen aan de functieroltypen die SDV nodig heeft voor verificatie.
//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