mirror of
https://github.com/reactos/reactos.git
synced 2025-07-31 10:21:50 +00:00
[NTOSKRNL_VISTA] Implement/stubplement more Etw, Io, Ke, Po functions
CORE-17129
This commit is contained in:
parent
17dc5f7584
commit
5e242c5566
5 changed files with 214 additions and 10 deletions
|
@ -4,8 +4,10 @@ add_definitions(-D_WIN32_WINNT=0x600)
|
|||
add_definitions(-DUNICODE -D_UNICODE -D__NTOSKRNL__ -D_NTOSKRNL_ -D_NTSYSTEM_)
|
||||
|
||||
list(APPEND SOURCE
|
||||
etw.c
|
||||
fsrtl.c
|
||||
io.c
|
||||
po.c
|
||||
ke.c
|
||||
rtl.c)
|
||||
|
||||
|
|
46
sdk/lib/drivers/ntoskrnl_vista/etw.c
Normal file
46
sdk/lib/drivers/ntoskrnl_vista/etw.c
Normal file
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
* PROJECT: ReactOS Kernel - Vista+ APIs
|
||||
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
|
||||
* PURPOSE: Etw functions of Vista+
|
||||
* COPYRIGHT: 2020 Victor Perevertkin (victor.perevertkin@reactos.org)
|
||||
*/
|
||||
|
||||
#include <ntdef.h>
|
||||
#include <ntifs.h>
|
||||
|
||||
_IRQL_requires_max_(HIGH_LEVEL)
|
||||
NTSTATUS
|
||||
NTKERNELAPI
|
||||
NTAPI
|
||||
EtwWrite(
|
||||
_In_ REGHANDLE RegHandle,
|
||||
_In_ PCEVENT_DESCRIPTOR EventDescriptor,
|
||||
_In_opt_ LPCGUID ActivityId,
|
||||
_In_ ULONG UserDataCount,
|
||||
_In_reads_opt_(UserDataCount) PEVENT_DATA_DESCRIPTOR UserData)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||
NTSTATUS
|
||||
NTKERNELAPI
|
||||
NTAPI
|
||||
EtwRegister(
|
||||
_In_ LPCGUID ProviderId,
|
||||
_In_opt_ PETWENABLECALLBACK EnableCallback,
|
||||
_In_opt_ PVOID CallbackContext,
|
||||
_Out_ PREGHANDLE RegHandle)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||
NTSTATUS
|
||||
NTKERNELAPI
|
||||
NTAPI
|
||||
EtwUnregister(
|
||||
_In_ REGHANDLE RegHandle)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
|
@ -1,14 +1,23 @@
|
|||
/*
|
||||
* PROJECT: ReactOS Kernel - Vista+ APIs
|
||||
* LICENSE: GPL v2 - See COPYING in the top level directory
|
||||
* FILE: lib/drivers/ntoskrnl_vista/io.c
|
||||
* PURPOSE: Io functions of Vista+
|
||||
* PROGRAMMERS: Pierre Schweitzer <pierre@reactos.org>
|
||||
* PROJECT: ReactOS Kernel - Vista+ APIs
|
||||
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
|
||||
* PURPOSE: Io functions of Vista+
|
||||
* COPYRIGHT: 2016 Pierre Schweitzer (pierre@reactos.org)
|
||||
* 2020 Victor Perevertkin (victor.perevertkin@reactos.org)
|
||||
*/
|
||||
|
||||
#include <ntdef.h>
|
||||
#include <ntifs.h>
|
||||
|
||||
typedef struct _EX_WORKITEM_CONTEXT
|
||||
{
|
||||
PIO_WORKITEM WorkItem;
|
||||
PIO_WORKITEM_ROUTINE_EX WorkItemRoutineEx;
|
||||
PVOID Context;
|
||||
} EX_WORKITEM_CONTEXT, *PEX_WORKITEM_CONTEXT;
|
||||
|
||||
#define TAG_IOWI 'IWOI'
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
|
@ -25,3 +34,77 @@ IoGetIrpExtraCreateParameter(IN PIRP Irp,
|
|||
*ExtraCreateParameter = Irp->UserBuffer;
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
_Function_class_(IO_WORKITEM_ROUTINE)
|
||||
static
|
||||
VOID
|
||||
NTAPI
|
||||
IopWorkItemExCallback(
|
||||
PDEVICE_OBJECT DeviceObject,
|
||||
PVOID Ctx)
|
||||
{
|
||||
PEX_WORKITEM_CONTEXT context = Ctx;
|
||||
|
||||
context->WorkItemRoutineEx(DeviceObject, context->Context, context->WorkItem);
|
||||
ExFreePoolWithTag(context, TAG_IOWI);
|
||||
}
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
IoQueueWorkItemEx(
|
||||
_Inout_ PIO_WORKITEM IoWorkItem,
|
||||
_In_ PIO_WORKITEM_ROUTINE_EX WorkerRoutine,
|
||||
_In_ WORK_QUEUE_TYPE QueueType,
|
||||
_In_opt_ __drv_aliasesMem PVOID Context)
|
||||
{
|
||||
PEX_WORKITEM_CONTEXT newContext = ExAllocatePoolWithTag(NonPagedPoolMustSucceed, sizeof(*newContext), TAG_IOWI);
|
||||
newContext->WorkItem = IoWorkItem;
|
||||
newContext->WorkItemRoutineEx = WorkerRoutine;
|
||||
newContext->Context = Context;
|
||||
|
||||
IoQueueWorkItem(IoWorkItem, IopWorkItemExCallback, QueueType, Context);
|
||||
}
|
||||
|
||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||
_Must_inspect_result_
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
IoGetDevicePropertyData(
|
||||
_In_ PDEVICE_OBJECT Pdo,
|
||||
_In_ CONST DEVPROPKEY *PropertyKey,
|
||||
_In_ LCID Lcid,
|
||||
_Reserved_ ULONG Flags,
|
||||
_In_ ULONG Size,
|
||||
_Out_ PVOID Data,
|
||||
_Out_ PULONG RequiredSize,
|
||||
_Out_ PDEVPROPTYPE Type)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||
_Must_inspect_result_
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
IoSetDeviceInterfacePropertyData(
|
||||
_In_ PUNICODE_STRING SymbolicLinkName,
|
||||
_In_ CONST DEVPROPKEY *PropertyKey,
|
||||
_In_ LCID Lcid,
|
||||
_In_ ULONG Flags,
|
||||
_In_ DEVPROPTYPE Type,
|
||||
_In_ ULONG Size,
|
||||
_In_reads_bytes_opt_(Size) PVOID Data)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NTKERNELAPI
|
||||
IO_PRIORITY_HINT
|
||||
NTAPI
|
||||
IoGetIoPriorityHint(
|
||||
_In_ PIRP Irp)
|
||||
{
|
||||
return IoPriorityNormal;
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
/*
|
||||
* PROJECT: ReactOS Kernel - Vista+ APIs
|
||||
* LICENSE: GPL v2 - See COPYING in the top level directory
|
||||
* FILE: lib/drivers/ntoskrnl_vista/ke.c
|
||||
* PURPOSE: Ke functions of Vista+
|
||||
* PROGRAMMERS: Pierre Schweitzer <pierre@reactos.org>
|
||||
* PROJECT: ReactOS Kernel - Vista+ APIs
|
||||
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
|
||||
* PURPOSE: Ke functions of Vista+
|
||||
* COPYRIGHT: 2016 Pierre Schweitzer (pierre@reactos.org)
|
||||
* 2020 Victor Perevertkin (victor.perevertkin@reactos.org)
|
||||
*/
|
||||
|
||||
#include <ntdef.h>
|
||||
|
@ -25,3 +25,33 @@ KeQueryActiveProcessorCount(OUT PKAFFINITY ActiveProcessors OPTIONAL)
|
|||
RtlInitializeBitMap(&Bitmap, (PULONG)&ActiveMap, sizeof(ActiveMap) * 8);
|
||||
return RtlNumberOfSetBits(&Bitmap);
|
||||
}
|
||||
|
||||
NTKERNELAPI
|
||||
USHORT
|
||||
NTAPI
|
||||
KeQueryHighestNodeNumber()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
NTKERNELAPI
|
||||
USHORT
|
||||
NTAPI
|
||||
KeGetCurrentNodeNumber()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
_IRQL_requires_max_(DISPATCH_LEVEL)
|
||||
NTKERNELAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KeSetCoalescableTimer(
|
||||
_Inout_ PKTIMER Timer,
|
||||
_In_ LARGE_INTEGER DueTime,
|
||||
_In_ ULONG Period,
|
||||
_In_ ULONG TolerableDelay,
|
||||
_In_opt_ PKDPC Dpc)
|
||||
{
|
||||
return KeSetTimerEx(Timer, DueTime, Period, Dpc);
|
||||
}
|
||||
|
|
43
sdk/lib/drivers/ntoskrnl_vista/po.c
Normal file
43
sdk/lib/drivers/ntoskrnl_vista/po.c
Normal file
|
@ -0,0 +1,43 @@
|
|||
/*
|
||||
* PROJECT: ReactOS Kernel - Vista+ APIs
|
||||
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
|
||||
* PURPOSE: Po functions of Vista+
|
||||
* COPYRIGHT: 2020 Victor Perevertkin (victor.perevertkin@reactos.org)
|
||||
*/
|
||||
|
||||
#include <ntdef.h>
|
||||
#include <ntifs.h>
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PoRegisterPowerSettingCallback(
|
||||
_In_opt_ PDEVICE_OBJECT DeviceObject,
|
||||
_In_ LPCGUID SettingGuid,
|
||||
_In_ PPOWER_SETTING_CALLBACK Callback,
|
||||
_In_opt_ PVOID Context,
|
||||
_Outptr_opt_ PVOID *Handle)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
_IRQL_requires_max_(APC_LEVEL)
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PoUnregisterPowerSettingCallback(
|
||||
_Inout_ PVOID Handle)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
_IRQL_requires_max_(DISPATCH_LEVEL)
|
||||
NTKERNELAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
PoQueryWatchdogTime(
|
||||
_In_ PDEVICE_OBJECT Pdo,
|
||||
_Out_ PULONG SecondsRemaining)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue