mhook icon indicating copy to clipboard operation
mhook copied to clipboard

Hook OpenPrinterW failed under X64 platform

Open lhg19202212 opened this issue 10 years ago • 4 comments

Error message: ANOMALY: use of REX.w is meaningless (default operand size is 64). My Test Code: typedef BOOL (WINAPI* PFNOPENPRINTERW)( LPWSTR pPrinterName, LPHANDLE phPrinter, LPPRINTER_DEFAULTSW pDefault );

PFNOPENPRINTERW fpOpenPrinterW=(PFNOPENPRINTERW)GetProcAddress(LoadLibraryW(L"winspool.drv"), "OpenPrinterW");

BOOL WINAPI MyOpenPrinterW( LPWSTR pPrinterName, LPHANDLE phPrinter, LPPRINTER_DEFAULTSW pDefault)

{ BOOL Status; char temp[MAX_PATH]={0x00}; GetModuleFileNameA(NULL,temp,MAX_PATH); printf("%s[%d] m_sProcessName=%s \n",FILE,LINE,temp); Status = fpOpenPrinterW (pPrinterName, phPrinter, pDefault);
return Status; }

int wmain(int argc, WCHAR* argv[]) { HANDLE hProc = NULL; HANDLE m_handle=NULL; if(Mhook_SetHook((PVOID_)&fpOpenPrinterW, MyOpenPrinterW)) { OpenPrinterW(L"\Brother MFC-7860DN Printer",&m_handle,NULL); if(m_handle) CloseHandle(m_handle);
Mhook_Unhook((PVOID_)&fpOpenPrinterW); }else{ printf("%s[%d].OpenPrinterW hook fail\n",FILE,LINE); }
return 0; }

lhg19202212 avatar Jun 11 '15 09:06 lhg19202212

I cannot reproduce this. Which version of winspool.drv do you have?

poizan42 avatar Feb 07 '16 13:02 poizan42

@lhg19202212 Hi, I'm also having this problem. Some of the GDI hooks I did work, some of them not, and none of the winspool.drv hooked functions work... How did you fixed this ?

Bonjour123 avatar Nov 12 '18 08:11 Bonjour123

@Bonjour123 see #17

poizan42 avatar Nov 12 '18 09:11 poizan42

@poizan42 You were right, I was convinced I had the last version, but actually no. Thanks !

Bonjour123 avatar Nov 13 '18 04:11 Bonjour123