Quando sarà DllMain essere chiamato con il flag DLL_PROCESS_VERIFIER?
Domanda
In Windows, il punto di ingresso DLL di serie si chiama DllMain. Il secondo parametro è un valore DWORD, ul_reason_for_call
.
Ho guardato i valori possibili per questo secondo parametro su MSDN. I seguenti sono evidenti:
DLL_PROCESS_ATTACH:
DLL_THREAD_ATTACH:
DLL_THREAD_DETACH:
DLL_PROCESS_DETACH:
Ma che dire:
DLL_PROCESS_VERIFIER
Quando sarà il punto di ingresso essere chiamato con questo flag? Dovrei preoccuparsi durante il funzionamento 'normale' della DLL?
Si noti che vedo solo DLL_PROCESS_VERIFIER
nei file di intestazione da Visual Studio 2005, non il 2008.
Soluzione
Credo che, in teoria, Microsoft potrebbe inventare nuovi usi e le bandiere ogni volta che sentono il bisogno di una nuova. Quindi la regola semplice è quello di garantire che il codice tollera valori imprevisti:. Cioè scriverlo per gestire i casi di cui avete bisogno per gestire e ignorare il resto, con il ritorno a zero
Altri suggerimenti
Questo è davvero oscuro. Non è mai documentato in l'SDK e non sembra nei file di intestazione SDK. Google produce solo un paio di colpi, la maggior parte dei siti non sono disponibili o non attendibile. L'unico colpo decente che ottengo è il codice XBox, dichiara solo, ma in realtà non lo uso.
Io non sono abbastanza convinto che si tratta di un vero e proprio codice che si sarebbe mai incontrare in un programma regolare di Windows.
penso che possa avere allora il valore se viene eseguito attraverso Application Verifier . Tipo di indovinare:)