Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 尝试创建驱动程序时出现大量错误_C_Driver_Wdk - Fatal编程技术网

C 尝试创建驱动程序时出现大量错误

C 尝试创建驱动程序时出现大量错误,c,driver,wdk,C,Driver,Wdk,我试图创建一个不可终止的进程,这很有趣,但它需要一个驱动程序,我甚至不能编译示例驱动程序,我能做什么 ||=== Build: Debug in Test Driver (compiler: GNU GCC Compiler) ===| C:\Windows Kits\10\Include\10.0.20348.0\km\ntddk.h|39|warning: ignoring #pragma warning [-Wunknown-pragmas]| C:\Windows Kits\10\In

我试图创建一个不可终止的进程,这很有趣,但它需要一个驱动程序,我甚至不能编译示例驱动程序,我能做什么

||=== Build: Debug in Test Driver (compiler: GNU GCC Compiler) ===|
C:\Windows Kits\10\Include\10.0.20348.0\km\ntddk.h|39|warning: ignoring #pragma warning  [-Wunknown-pragmas]|
C:\Windows Kits\10\Include\10.0.20348.0\km\ntddk.h|40|warning: ignoring #pragma warning  [-Wunknown-pragmas]|
C:\Windows Kits\10\Include\10.0.20348.0\km\ntddk.h|41|warning: ignoring #pragma warning  [-Wunknown-pragmas]|
C:\Windows Kits\10\Include\10.0.20348.0\km\ntddk.h|42|warning: ignoring #pragma warning  [-Wunknown-pragmas]|
C:\Windows Kits\10\Include\10.0.20348.0\km\ntddk.h|43|warning: ignoring #pragma warning  [-Wunknown-pragmas]|
C:\Windows Kits\10\Include\10.0.20348.0\km\ntddk.h|44|warning: ignoring #pragma warning  [-Wunknown-pragmas]|
C:\Windows Kits\10\Include\10.0.20348.0\km\ntddk.h|45|warning: ignoring #pragma warning  [-Wunknown-pragmas]|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|38|error: #error Compiler version not supported by Windows DDK|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|49|warning: ignoring #pragma warning  [-Wunknown-pragmas]|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|50|warning: ignoring #pragma warning  [-Wunknown-pragmas]|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|51|warning: ignoring #pragma warning  [-Wunknown-pragmas]|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|52|warning: ignoring #pragma warning  [-Wunknown-pragmas]|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|53|warning: ignoring #pragma warning  [-Wunknown-pragmas]|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|54|warning: ignoring #pragma warning  [-Wunknown-pragmas]|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|63|warning: return type defaults to 'int' [-Wimplicit-int]|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h||In function '_Analysis_mode_':|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|64|error: expected declaration specifiers before '_Analysis_mode_'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|76|error: storage class specified for parameter 'PCALLBACK_OBJECT'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|84|error: storage class specified for parameter 'PEPROCESS'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|85|error: storage class specified for parameter 'PETHREAD'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|87|error: storage class specified for parameter 'PIO_TIMER'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|88|error: storage class specified for parameter 'PKINTERRUPT'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|89|error: storage class specified for parameter 'PKTHREAD'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|89|error: storage class specified for parameter 'PRKTHREAD'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|90|error: storage class specified for parameter 'PKPROCESS'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|90|error: storage class specified for parameter 'PRKPROCESS'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|91|error: storage class specified for parameter 'POBJECT_TYPE'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|92|error: storage class specified for parameter 'PSECURITY_QUALITY_OF_SERVICE'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|99|error: storage class specified for parameter 'PCONTEXT'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|100|error: storage class specified for parameter 'PIO_STACK_LOCATION'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|101|error: storage class specified for parameter 'PVPB'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|102|error: storage class specified for parameter 'PFILE_GET_QUOTA_INFORMATION'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|109|error: unknown type name '_In_'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|114|warning: ignoring #pragma intrinsic  [-Wunknown-pragmas]|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|118|error: expected '=', ',', ';', 'asm' or '__attribute__' before 'KeGetCurrentThread'|
C:\Windows Kits\10\Include\10.0.20348.0\km\mce.h|39|error: storage class specified for parameter 'MCA_EXCEPTION_TYPE'|
C:\Windows Kits\10\Include\10.0.20348.0\km\mce.h|54|error: storage class specified for parameter 'MCI_ADDR'|
C:\Windows Kits\10\Include\10.0.20348.0\km\mce.h|54|error: storage class specified for parameter 'PMCI_ADDR'|
C:\Windows Kits\10\Include\10.0.20348.0\km\mce.h|96|error: storage class specified for parameter 'MCI_STATS'|
C:\Windows Kits\10\Include\10.0.20348.0\km\mce.h|96|error: storage class specified for parameter 'PMCI_STATS'|
C:\Windows Kits\10\Include\10.0.20348.0\km\mce.h|141|error: expected specifier-qualifier-list before 'MCA_EXCEPTION_TYPE'|
C:\Windows Kits\10\Include\10.0.20348.0\km\mce.h|168|error: storage class specified for parameter 'MCA_EXCEPTION'|
C:\Windows Kits\10\Include\10.0.20348.0\km\mce.h|168|error: storage class specified for parameter 'PMCA_EXCEPTION'|
C:\Windows Kits\10\Include\10.0.20348.0\km\mce.h|196|error: expected '=', ',', ';', 'asm' or '__attribute__' before 'CMC_EXCEPTION'|
C:\Windows Kits\10\Include\10.0.20348.0\km\mce.h|197|error: expected '=', ',', ';', 'asm' or '__attribute__' before 'CPE_EXCEPTION'|
C:\Windows Kits\10\Include\10.0.20348.0\km\mce.h|215|error: storage class specified for parameter 'ERROR_SEVERITY'|
C:\Windows Kits\10\Include\10.0.20348.0\km\mce.h|215|error: storage class specified for parameter 'PERROR_SEVERITY'|
C:\Windows Kits\10\Include\10.0.20348.0\km\mce.h|222|error: storage class specified for parameter 'ERROR_SEVERITY_VALUE'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|180|error: storage class specified for parameter 'KeNumberProcessors'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|180|warning: 'dllimport' attribute ignored [-Wattributes]|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|279|error: storage class specified for parameter 'KSYSTEM_TIME'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|279|error: storage class specified for parameter 'PKSYSTEM_TIME'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|286|error: storage class specified for parameter 'KPRIORITY'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|295|error: storage class specified for parameter 'KSPIN_LOCK'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|296|error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|327|error: storage class specified for parameter 'KSPIN_LOCK_QUEUE_NUMBER'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|375|error: expected specifier-qualifier-list before 'PKSPIN_LOCK'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|376|error: storage class specified for parameter 'KSPIN_LOCK_QUEUE'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|376|error: storage class specified for parameter 'PKSPIN_LOCK_QUEUE'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|379|error: expected specifier-qualifier-list before 'KSPIN_LOCK_QUEUE'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|381|error: storage class specified for parameter 'KLOCK_QUEUE_HANDLE'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|381|error: storage class specified for parameter 'PKLOCK_QUEUE_HANDLE'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|412|error: storage class specified for parameter 'KPROFILE_SOURCE'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|429|error: storage class specified for parameter 'DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|429|error: storage class specified for parameter 'PDPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|440|error: storage class specified for parameter 'M128A'|
C:\Windows Kits\10\Include\10.0.20348.0\km\wdm.h|440|error: storage class specified for parameter 'PM128A'|
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build failed: 50 error(s), 16 warning(s) (0 minute(s), 14 second(s)) ===|
那么,你怎么能制造出一个功能正常的驱动程序呢

这就是驱动程序本身:

#include <ntddk.h>

NTSTATUS
STDCALL
DriverDispatch(IN PDEVICE_OBJECT DeviceObject,
               IN PIRP Irp)
{
    return STATUS_SUCCESS;
}

VOID
STDCALL
DriverUnload(IN PDRIVER_OBJECT DriverObject)
{
    DbgPrint("DriverUnload() !\n");
    return;
}

NTSTATUS
STDCALL
DriverEntry(IN PDRIVER_OBJECT DriverObject,
            IN PUNICODE_STRING RegistryPath)
{
    DbgPrint("DriverEntry() !\n");

    DriverObject->DriverUnload = DriverUnload;

    return STATUS_SUCCESS;
}
#包括
NTSTATUS
STDCALL
DriverDispatch(在PDEVICE\u对象设备对象中,
在PIRP中(Irp)
{
返回状态\成功;
}
无效的
STDCALL
DriverUnload(在PDRIVER_对象DriverObject中)
{
DbgPrint(“DriverUnload()!\n”);
返回;
}
NTSTATUS
STDCALL
DriverEntry(在PDRIVER_对象DriverObject中,
在PUNICODE(字符串注册表路径)
{
DbgPrint(“DriverEntry()!\n”);
DriverObject->DriverRunLoad=DriverRunLoad;
返回状态\成功;
}
我还尝试使用Visual Studio(Community)来创建它,我还得到了大量错误

#Windows DDK不支持的错误编译器版本。首先,阅读DDK文档以确定预期的编译器。