为什么 IoAllocateErrorLogEntry return 为空?

Why does IoAllocateErrorLogEntry return null?

我正在尝试编写我的第一个 Windows 2000 驱动程序,并且喜欢使用 EventViewer 进行调试。

所以我写了这样的东西:

DriverEntry(DriverObject, SomeRegistryPathIDontCareAbout){
    ntoskrnl.exe/IoAllocateErrorLogEntry(
        IoObject = DriverObject,
        EntrySize = 44
    )

    return 0;
}

ntoskrnl.exe/IoAllocateErrorLogEntry 只是 returns 0 而不是地址。有人知道为什么函数拒绝为事件包分配一些 space 吗?

好的,我明白了。

IoAllocateErrorLogEntry 检查 EntrySize 的值是否 >= sizeof(IO_ERROR_LOG_PACKET) 即 48 字节。

所以我的 44 字节的值太低了。