mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 07:53:07 +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_)
|
add_definitions(-DUNICODE -D_UNICODE -D__NTOSKRNL__ -D_NTOSKRNL_ -D_NTSYSTEM_)
|
||||||
|
|
||||||
list(APPEND SOURCE
|
list(APPEND SOURCE
|
||||||
|
etw.c
|
||||||
fsrtl.c
|
fsrtl.c
|
||||||
io.c
|
io.c
|
||||||
|
po.c
|
||||||
ke.c
|
ke.c
|
||||||
rtl.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
|
* PROJECT: ReactOS Kernel - Vista+ APIs
|
||||||
* LICENSE: GPL v2 - See COPYING in the top level directory
|
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
|
||||||
* FILE: lib/drivers/ntoskrnl_vista/io.c
|
* PURPOSE: Io functions of Vista+
|
||||||
* PURPOSE: Io functions of Vista+
|
* COPYRIGHT: 2016 Pierre Schweitzer (pierre@reactos.org)
|
||||||
* PROGRAMMERS: Pierre Schweitzer <pierre@reactos.org>
|
* 2020 Victor Perevertkin (victor.perevertkin@reactos.org)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <ntdef.h>
|
#include <ntdef.h>
|
||||||
#include <ntifs.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
|
NTKERNELAPI
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
|
@ -25,3 +34,77 @@ IoGetIrpExtraCreateParameter(IN PIRP Irp,
|
||||||
*ExtraCreateParameter = Irp->UserBuffer;
|
*ExtraCreateParameter = Irp->UserBuffer;
|
||||||
return STATUS_SUCCESS;
|
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
|
* PROJECT: ReactOS Kernel - Vista+ APIs
|
||||||
* LICENSE: GPL v2 - See COPYING in the top level directory
|
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
|
||||||
* FILE: lib/drivers/ntoskrnl_vista/ke.c
|
* PURPOSE: Ke functions of Vista+
|
||||||
* PURPOSE: Ke functions of Vista+
|
* COPYRIGHT: 2016 Pierre Schweitzer (pierre@reactos.org)
|
||||||
* PROGRAMMERS: Pierre Schweitzer <pierre@reactos.org>
|
* 2020 Victor Perevertkin (victor.perevertkin@reactos.org)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <ntdef.h>
|
#include <ntdef.h>
|
||||||
|
@ -25,3 +25,33 @@ KeQueryActiveProcessorCount(OUT PKAFFINITY ActiveProcessors OPTIONAL)
|
||||||
RtlInitializeBitMap(&Bitmap, (PULONG)&ActiveMap, sizeof(ActiveMap) * 8);
|
RtlInitializeBitMap(&Bitmap, (PULONG)&ActiveMap, sizeof(ActiveMap) * 8);
|
||||||
return RtlNumberOfSetBits(&Bitmap);
|
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