Récemment, j'essayais d'utiliser W32pServiceTable dans mon pilote. Je ne wink32.lib importé dans SOURCES:DDK/WDM importer wink32.lib dans le pilote
TARGETNAME=exp
TARGETTYPE=DRIVER
TARGETLIB=$(DDK_LIB_PATH)\win32k.lib
SOURCES=Experimental.cpp
MSC_WARNING_LEVEL=/W3
Et je déclare dans le fichier source:
extern PDWORD W32pServiceTable;
Mais je reçois sans solution symbole. J'ai lu, que seuls les pilotes GDI peuvent utiliser wink32.lib. Mais je suis à peu près sûr que d'autres pilotes peuvent également lier à cette bibliothèque (mais je ne sais pas comment). Je serais très reconnaissant si vous pouviez aider.
Merci beaucoup, c'est très utile. Pourriez-vous me dire quelque chose de plus sur ce truc, je veux dire un indice afin que je puisse chercher sur ce sujet (désolé pour mon anglais). Quelqu'un m'a dit que je ne peux pas utiliser win32 dans le noyau. J'ai entendu dire qu'il y avait de meilleures façons de le faire (documenté), mais utiliser win32k est plus excitant. – Vasilij
Mon nom est Vladislav, donc mon anglais est comme le tien :) – valdo
L'astuce est en fait d'écrire deux pilotes: un pilote GDI et un pilote WDM. Dans l'initialisation du pilote GDI, vous pouvez utiliser 'EngLoadImage' et 'EngFindImageProcAddress' pour obtenir un pointeur sur la fonction du pilote WDM, afin qu'ils puissent communiquer. – valdo