S
sw33tlull4by
Guest
Hallo!
Also, ich habe einen KMDF Treiber (ab)-geschrieben.
Nun wollte ich EvtDeviceDriverAdd hinzufügen.
http://msdn.microsoft.com/en-us/library/ff541693.aspx
Legt nahe wie man das macht.
Mein problem ist nicht die deklaration der Funktion(dank Chromatin) sondern die Implementierung.
Wie man auf der Seite sieht ist der Rückgabewert der Funktion void.
Mein compiler wirft dann allerdings den error c2371.
Also habe ich das void durch NTSTATUS ersetzt, da im Text darüber davon auch die Rede war was passiert wenn STATUS_SUCCESS nicht zurrückgegeben wird.
Ich will ja keinen fehlerhaften Code in den Kernel einführen, weswegen ich hier mal nachfrage.
evtdriver() wird nicht ausgeführt da ich kein PnPdevice habe, sondern nur einen Filter den ich mit dem OsrLoader lade,weswegen ich auf dem Wege zZ kein Feedback über die qualität des Codes erhalte.
Mfg
sw33t
Also, ich habe einen KMDF Treiber (ab)-geschrieben.
Nun wollte ich EvtDeviceDriverAdd hinzufügen.
http://msdn.microsoft.com/en-us/library/ff541693.aspx
Legt nahe wie man das macht.
Mein problem ist nicht die deklaration der Funktion(dank Chromatin) sondern die Implementierung.
Wie man auf der Seite sieht ist der Rückgabewert der Funktion void.
Mein compiler wirft dann allerdings den error c2371.
Also habe ich das void durch NTSTATUS ersetzt, da im Text darüber davon auch die Rede war was passiert wenn STATUS_SUCCESS nicht zurrückgegeben wird.
Ich will ja keinen fehlerhaften Code in den Kernel einführen, weswegen ich hier mal nachfrage.
evtdriver() wird nicht ausgeführt da ich kein PnPdevice habe, sondern nur einen Filter den ich mit dem OsrLoader lade,weswegen ich auf dem Wege zZ kein Feedback über die qualität des Codes erhalte.
Mfg
sw33t
PHP:
#include <ntddk.h>
#include <../wdf/kmdf/1.9/wdf.h>
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath);//Deklaration des driverentries
EVT_WDF_DRIVER_DEVICE_ADD evtdriver;//das hier ist auch eine Funktion aber etwas umständlich deklariert,
NTSTATUS evtdriver(
IN WDFDRIVER Driver,
IN PWDFDEVICE_INIT DeviceInit
){
KdPrint(("This is EVT_WDF_DRIVER_DEVICE_ADD-Callbackfunction writing"));
return STATUS_SUCCESS;
}
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath){
NTSTATUS status = STATUS_SUCCESS;
WDF_DRIVER_CONFIG config;
KdPrint(("Toaster Function Driver Sample-"
"Driver Framework Edition.\n"));
KdPrint(("Built %s %s\n",__DATE__,__TIME__));
WDF_DRIVER_CONFIG_INIT( //INITIALISIERT WDF_DRIVER_CONFIG,fest vorgegebene Funktion einfach benutzen
&config,
evtdriver//NULL //Variable wäre für Plug-n-Play hilfreich werde hier aber erstmal drauf verzichten
);
status = WdfDriverCreate(
DriverObject,//wird beim treiberstart übergeben,evtl pointer auf Speicher wo Treiberobjekt initialisiert wird(FrameWorkObjekt welches den Treiber repräsentiert
RegistryPath,//Pfad in die Registry
WDF_NO_OBJECT_ATTRIBUTES,
&config,//Pointer auf das Objekt was die konfigurationen enthält.
WDF_NO_HANDLE
);
if(!NT_SUCCESS(status)){
KdPrint(("WdfDriverCreate failed with"
"status 0x%x\n",status));
}
return status;
}