Я добавил источник asm в проект драйвера KMDF:
.CODE
read_port PROC port : WORD, result_ptr : PTR BYTE
mov dx, port
in al, dx ; read port
mov rbx, result_ptr
mov BYTE PTR [rbx], al ; place value at result address
ret
read_port ENDP
END
В файле Driver.c я могу вызвать read_port следующим образом:
extern void read_port(unsigned short port, unsigned char* result);
//...
unsigned char val;
read_port(0, &val);
Однако я не могу вызвать такую функцию из дополнительного исходного файла, например test.cpp. Complier дает мне нерешенные внешние.
test.cpp:
extern void read_port(unsigned short port, unsigned char* result);
//...
unsigned char val;
read_port(0, &val); // unresolved external
Какова причина?
Задача ещё не решена.