621b33fc5b
ndis_timercall() in NdisMInitializeTimer(), we can't use the raw function pointer. This is because ntoskrnl_run_dpc() expects to invoke a function with Microsoft calling conventions. On i386, this works because ndis_timercall() is declared with the __stdcall attribute, but this is a no-op on amd64. To do it correctly, we have to generate a wrapper for ndis_timercall() and us the wrapper instead of of the raw function pointer. Fix this by adding ndis_timercall() to the funcptr table in subr_ndis.c, and create ndis_findwrap() to extract the wrapped function from the table in NdisMInitializeTimer() instead of just passing ndis_timercall() to KeInitializeDpc() directly. |
||
---|---|---|
.. | ||
cfg_var.h | ||
hal_var.h | ||
kern_ndis.c | ||
kern_windrv.c | ||
ndis_var.h | ||
ntoskrnl_var.h | ||
pe_var.h | ||
resource_var.h | ||
subr_hal.c | ||
subr_ndis.c | ||
subr_ntoskrnl.c | ||
subr_pe.c | ||
subr_usbd.c | ||
usbd_var.h | ||
winx64_wrap.S |