Bonsoir à tous,

J'implémente (j'essaye) une structure minimum de Driver.
Mais là, je suis sur un soucis depuis 2hrs.
La ligne suivante ... elle se trouve dans mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
DriverObject -> MajorFunction[IRP_MJ_CREATE] = Example_Create ;
Sans elle, pas de soucis ... je peux "charger" et "retirer" ce driver, et le "voir" dans le systeme.
Une fois que je veux initialiser les fonctions Dispatch, ça refuse de compiler.
Pourtant, la syntaxe semble correct ... j'ai retourné toute ma doc ... je suis dans un cul de sac.
Un petit coup de main me ferait bien plaisir ... merci à tous.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// MY DRIVER
// =========
#include <ntddk.h>
#include <windef.h>

void Example_Create &#40;&#41; &#123; &#125;

void myUnload &#40;PDRIVER_OBJECT pDriverObject&#41;
&#123;
	DbgPrint &#40;"%s","My Driver - Unload\n"&#41; ;
&#125;

NTSTATUS DriverEntry &#40;PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath&#41;
&#123;
    NTSTATUS NtStatus = STATUS_SUCCESS ;
    PDEVICE_OBJECT pDeviceObject = NULL ;
    UNICODE_STRING usDriverName, usDosDeviceName ;
	
    DbgPrint &#40;"DriverEntry Called \r\n"&#41; ;

    RtlInitUnicodeString &#40;&usDriverName, L"\\test4"&#41; ; 
    RtlInitUnicodeString &#40;&usDosDeviceName, L"\\DosDevices\\Example"&#41; ; 

	
    NtStatus = IoCreateDevice &#40;DriverObject, 0,
                              &usDriverName, 
                              FILE_DEVICE_UNKNOWN,
                              FILE_DEVICE_SECURE_OPEN, 
                              FALSE, &pDeviceObject&#41; ;
	
	
    DriverObject -> MajorFunction&#91;IRP_MJ_CREATE&#93; = Example_Create ;
 
// cette ligne CI-DESSUS "refuse", sans elle, c'est ok ! !
// ... alors que la ligne CI-DESSOUS ne pose aucun soucis ... étonnant   !!!

    DriverObject -> DriverUnload = myUnload ;
 	
    DbgPrint &#40;"%s","My Driver - Load\n"&#41; ;
	
    return STATUS_SUCCESS ;
&#125;
PS: je ne parle pas d'utilisation, mais simplement de compilation.