Romz
Romz

Reputation: 1457

How to call winapi function via pointer to this function?

I get functions from ntdll.dll dynamically, using GetProcAddress winapi function like this:

HMODULE ntdllh = LoadLibrary(L"ntdll.dll");
unsigned char* ptrToNtLoadDriver 
                        = (unsigned char*)GetProcAddress(ntdllh, "NtLoadDriver");

How can I call NtLoadDriver function via ptrToNtLoadDriver ? I thought of something like this: ((NTSTATUS NtLoadDriver(PUNICODE_STRING driverServiceName))ptrToNtLoadDriver)(fooString)

Upvotes: 1

Views: 195

Answers (2)

Eugene Loy
Eugene Loy

Reputation: 12426

  1. do typedef "X" for function type you want to call (example: "typedef returntype (*X)(argtype);")
  2. change "unsigned char* ptrToNtLoadDriver" to "X ptrToNtLoadDriver"
  3. call function as "ptrToNtLoadDriver(argsHere)"

Upvotes: 1

elevener
elevener

Reputation: 1097

((NTSTATUS (WINAPI*)(PUNICODE_STRING))ptrToNtLoadDriver)(fooStrin);

Upvotes: 0

Related Questions