introduce a stable NTL_DDK driver ABI to replace direct HAL_API and kernel-header access in drivers, add code/kernel/io_ddk.c and code/public/ntlite/ddk/ headers, change DriverEntry to take (const NTL_DDK*, NTL_DRIVER_INIT*), update kmain to build the DDK once via IoInitializeDdk/IoGetDdk and hand it to both boot and runtime drivers, downgrade code/public/ntlite/ddi/io_driver.h to a legacy I/O model header pulling from ntlite/ddk instead of kernel internals, move code/third_party/lwip into code/drivers/net/lwip/third_party, fix up lwip_sources.txt and build.c include paths to match, split build.c's single CFLAGS macro into COMMON/KERNEL/USER/BOOT/DRIVER cflags.
This commit is contained in:
1 parent
08329516ba
commit
485a6bbfe7
385 files changed
+1822
-1079
No files matched your search
@@ -0,0 +1,52 @@
|
||||
// Public nt-lite DDK asynchronous request declarations.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <ntlite/status.h>
|
||||
#include <ntlite/ddk/list.h>
|
||||
#include <ntlite/ddk/object.h>
|
||||
|
||||
struct EVENT;
|
||||
struct KAPC;
|
||||
struct IRP;
|
||||
typedef struct MM_LOCKED_USER_BUFFER MM_LOCKED_USER_BUFFER;
|
||||
|
||||
typedef struct IO_STATUS_BLOCK {
|
||||
volatile KSTATUS Status;
|
||||
volatile size_t Information;
|
||||
} IO_STATUS_BLOCK;
|
||||
|
||||
typedef enum IO_ASYNC_REQUEST_STATE {
|
||||
IoAsyncRequestQueued = 0,
|
||||
IoAsyncRequestRunning = 1,
|
||||
IoAsyncRequestCompleted = 2,
|
||||
IoAsyncRequestCancelled = 3,
|
||||
} IO_ASYNC_REQUEST_STATE;
|
||||
|
||||
typedef struct IO_ASYNC_REQUEST_OBJECT IO_ASYNC_REQUEST_OBJECT;
|
||||
|
||||
typedef void (*IO_ASYNC_REQUEST_CLEANUP_ROUTINE)(IO_ASYNC_REQUEST_OBJECT* request,
|
||||
void* context);
|
||||
typedef KSTATUS (*IO_ASYNC_REQUEST_CANCEL_ROUTINE)(IO_ASYNC_REQUEST_OBJECT* request,
|
||||
void* context);
|
||||
|
||||
struct IO_ASYNC_REQUEST_OBJECT {
|
||||
OBJECT Header;
|
||||
LIST_ENTRY Link;
|
||||
IO_ASYNC_REQUEST_STATE State;
|
||||
uint8_t CancelRequested;
|
||||
struct EVENT* WaitEvent;
|
||||
struct EVENT* CompletionEvent;
|
||||
struct KAPC* CompletionApc;
|
||||
IO_STATUS_BLOCK* Iosb;
|
||||
IO_STATUS_BLOCK IosbSnapshot;
|
||||
MM_LOCKED_USER_BUFFER* LockedBuffer;
|
||||
MM_LOCKED_USER_BUFFER* LockedIosb;
|
||||
struct IRP* Irp;
|
||||
IO_ASYNC_REQUEST_CLEANUP_ROUTINE CleanupRoutine;
|
||||
void* CleanupContext;
|
||||
IO_ASYNC_REQUEST_CANCEL_ROUTINE CancelRoutine;
|
||||
void* CancelContext;
|
||||
};
|
||||
Reference in new issue
Block a user