#define __INCLUDE_NAPI_CORE_H
#include "../ntoskrnl/include/internal/ke.h"
+#include <ddk/ntddscsi.h>
#define MM_CORE_DUMP_HEADER_MAGIC (0xdeafbead)
#define MM_CORE_DUMP_HEADER_VERSION (0x1)
+
+#define MM_CORE_DUMP_TYPE_NONE (0x0)
#define MM_CORE_DUMP_TYPE_MINIMAL (0x1)
#define MM_CORE_DUMP_TYPE_FULL (0x2)
ULONG PhysicalMemorySize;
} MM_CORE_DUMP_HEADER, *PMM_CORE_DUMP_HEADER;
-typedef struct _MM_DUMP_POINTERS
+typedef struct MM_CORE_DUMP_FUNCTIONS
{
- PVOID Context;
- NTSTATUS (*DeviceInit)(PVOID Context);
- NTSTATUS (*DeviceWrite)(PVOID Context, ULONG Block, PMDL Mdl);
- NTSTATUS (*DeviceFinish)(PVOID Context);
-} MM_DUMP_POINTERS, *PMM_DUMP_POINTERS;
-
-#define FSCTL_GET_DUMP_BLOCK_MAP (('R' << 24) | 0xF1)
-#define IOCTL_GET_DUMP_POINTERS (('R' << 24) | 0xF2)
+ NTSTATUS STDCALL (*DumpPrepare)(PDEVICE_OBJECT DeviceObject, PDUMP_POINTERS DumpPointers);
+ NTSTATUS STDCALL (*DumpInit)(VOID);
+ NTSTATUS STDCALL (*DumpWrite)(LARGE_INTEGER Address, PMDL Mdl);
+ NTSTATUS STDCALL (*DumpFinish)(VOID);
+} MM_CORE_DUMP_FUNCTIONS, *PMM_CORE_DUMP_FUNCTIONS;
#endif /* __INCLUDE_NAPI_CORE_H */