Я думал, что это моя вина и на моем компьютере отсутствуют некоторые заголовки, но я взял первый проект в Интернете, который использует wsk.h, и он успешно скомпилировался.
введите здесь описание изображения
Код: Выделить всё
#include
#include
NTSTATUS registerWSKApp();
NTSTATUS wskAppWorkerRoutine();
NTSTATUS registerWSKApp()
{
NTSTATUS status;
WSK_CLIENT_NPI wskClientNpi{};
wskClientNpi.ClientContext = NULL;
wskClientNpi.Dispatch = &dispatchTable;
status = WskRegister(&wskClientNpi, &wskRegistration);
return status;
}
NTSTATUS wskAppWorkerRoutine()
{
KdPrint(("[+] Call of wskAppWorkerRoutine!"));
NTSTATUS status;
WSK_PROVIDER_NPI wskProviderNpi;
status = WskCaptureProviderNPI(
&wskRegistration,
WSK_NO_WAIT,
&wskProviderNpi
);
if (!NT_SUCCESS(status))
{
if (status == STATUS_NOINTERFACE)
{
KdPrint(("[-] A requested WSK version is not supported!\n"));
return status;
}
return status;
}
KdPrint(("[+] Succesfully capture NPI!\n"));
//
// 1. Create socket
// 2. Bind socket
// 3. listen socket
// 4. accept connection
// 5. receive data
//
WSK_APP_SOCKET_CONTEXT socketContext { 0 };
//creation of socket
status = createListeningSocket(&wskProviderNpi, &socketContext, NULL);
if (!NT_SUCCESS(status))
{
KdPrint(("[-] Failed to create listening socket!\n"));
}
return status;
}
Подробнее здесь: https://stackoverflow.com/questions/784 ... e-building
Мобильная версия