Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <wdf.h>
- #include <ntddk.h>
- DRIVER_INITIALIZE DriverEntry;
- EVT_WDF_DRIVER_DEVICE_ADD EvtDriverDeviceAdd;
- EVT_WDF_DRIVER_UNLOAD EvtDriverUnload;
- NTSTATUS DriverEntry(_In_ PDRIVER_OBJECT DriverObject, _In_ PUNICODE_STRING RegistryPath)
- {
- NTSTATUS retstatus;
- WDF_DRIVER_CONFIG driver_config_struct;
- driver_config_struct.EvtDriverUnload = EvtDriverUnload;
- driver_config_struct.EvtDriverDeviceAdd = EvtDriverDeviceAdd;
- WDF_OBJECT_ATTRIBUTES driver_attributes_struct;
- WDF_DRIVER_CONFIG_INIT(&driver_config_struct, EvtDriverDeviceAdd);
- WDF_OBJECT_ATTRIBUTES_INIT(&driver_attributes_struct);
- retstatus = WdfDriverCreate(DriverObject, RegistryPath, &driver_attributes_struct, &driver_config_struct, WDF_NO_HANDLE);
- if (retstatus != STATUS_SUCCESS)
- {
- DbgPrint("[-] Error,intilialize Driver code: %x\n", retstatus);
- goto return_status;
- }
- DbgPrint("[*] DRIVER LOAD\n");
- return_status:
- return retstatus;
- }
- NTSTATUS EvtDriverDeviceAdd(_In_ WDFDRIVER WdfDriverObject, _Inout_ PWDFDEVICE_INIT DeviceInit)
- {
- NTSTATUS retstatus;
- UNREFERENCED_PARAMETER(WdfDriverObject);
- WDFDEVICE WdfDeviceObject;
- retstatus = WdfDeviceCreate(&DeviceInit, WDF_NO_OBJECT_ATTRIBUTES, &WdfDeviceObject);
- return retstatus;
- }
- VOID EvtDriverUload(_In_ WDFDRIVER WdfDriverObject)
- {
- WdfObjectDelete(WdfDriverObject);
- DbgPrint("[*] DRIVER UNLOAD\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment