Domanda

Di recente stavo cercando di utilizzare W32pServiceTable nel mio autista. Ho importato wink32.lib in FONTI:

TARGETNAME=exp
TARGETTYPE=DRIVER
TARGETLIB=$(DDK_LIB_PATH)\win32k.lib
SOURCES=Experimental.cpp
MSC_WARNING_LEVEL=/W3

E dichiaro in file sorgente:

extern PDWORD W32pServiceTable;

Ma io sono sempre simbolo non risolto. Ho letto, che solo i driver GDI possono usare wink32.lib. Ma sono abbastanza sicuro che gli altri piloti possono anche collegare a quella libreria (ma non so come). Sarei molto grato se potesse aiutarmi.

È stato utile?

Soluzione

Questo è vero. Solo i driver GDI possono utilizzare Win32k.sys, e viceversa -. Driver GDI possono essere staticamente essere collegato solo a win32k.sys

La ragione di questo è che la maggior parte delle interne di Windows vengono caricati nello spazio di memoria globale, mentre Win32k.sys viene caricato nel cosiddetto "spazio sessione". Alcune informazioni è qui:

http://www.tar.hu/wininternals/ch07lev1sec4.html

In parole semplici - la maggior parte dei componenti e dei driver di Windows vengono caricati una volta per l'intero sistema, mentre le cose come la gestione dell'interfaccia utente, GDI e ecc -. Sono caricati per ogni sessione

C'è una possibilità difficile durante il runtime per i conducenti GDI per ottenere puntatori a funzioni Ntoskrnl e li usa, e viceversa -. Driver WDM con un certo sforzo può utilizzare win32k funzioni (che funzionerà per la sessione 'corrente')

In ogni caso, perché si vuole creare un collegamento a Win32k? Che funzionalità avete bisogno?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top