blob: 7d8d5449b1bae1ea6da9901f43cd7304d9292f07 [file] [log] [blame]
/****************************************************************************
****************************************************************************
***
*** This header was created to make information necessary for userspace
*** to call into the Windows kernel available to Dr. Memory. It contains
*** only constants, structures, and macros, and thus, contains no
*** copyrightable information.
***
****************************************************************************
****************************************************************************/
#ifndef _NTEXAPI_H_
#define _NTEXAPI_H_ 1
#include "ndk_iotypes.h"
NTSTATUS NTAPI
NtEnumerateBootEntries(
__out_bcount_opt(*BufferLength) PVOID Buffer,
__inout PULONG BufferLength
);
NTSTATUS NTAPI
NtEnumerateDriverEntries(
__out_bcount(*BufferLength) PVOID Buffer,
__inout PULONG BufferLength
);
NTSTATUS NTAPI
NtEnumerateSystemEnvironmentValuesEx(
__in ULONG InformationClass,
__out PVOID Buffer,
__inout PULONG BufferLength
);
NTSTATUS NTAPI
NtQueryBootEntryOrder(
__out_ecount_opt(*Count) PULONG Ids,
__inout PULONG Count
);
NTSTATUS NTAPI
NtQueryBootOptions(
__out_bcount_opt(*BootOptionsLength) PBOOT_OPTIONS BootOptions,
__inout PULONG BootOptionsLength
);
NTSTATUS NTAPI
NtQueryDriverEntryOrder(
__out_ecount(*Count) PULONG Ids,
__inout PULONG Count
);
NTSTATUS NTAPI
NtQuerySystemEnvironmentValueEx(
__in PUNICODE_STRING VariableName,
__in LPGUID VendorGuid,
__out_bcount_opt(*ValueLength) PVOID Value,
__inout PULONG ValueLength,
__out_opt PULONG Attributes
);
NTSTATUS NTAPI
NtSetBootEntryOrder(
__in_ecount(Count) PULONG Ids,
__in ULONG Count
);
NTSTATUS NTAPI
NtSetDriverEntryOrder(
__in_ecount(Count) PULONG Ids,
__in ULONG Count
);
NTSTATUS
NTAPI
NtQuerySystemInformationEx(
__in SYSTEM_INFORMATION_CLASS SystemInformationClass,
__in_bcount(QueryInformationLength) PVOID QueryInformation,
__in ULONG QueryInformationLength,
__out_bcount_opt(SystemInformationLength) PVOID SystemInformation,
__in ULONG SystemInformationLength,
__out_opt PULONG ReturnLength
);
NTSTATUS
NTAPI
NtInitializeNlsFiles(
__out PVOID *BaseAddress,
__out PLCID DefaultLocaleId,
__out PLARGE_INTEGER DefaultCasingTableSize
);
NTSTATUS
NTAPI
NtAcquireCMFViewOwnership(
__out PULONGLONG TimeStamp,
__out PBOOLEAN tokenTaken,
__in BOOLEAN replaceExisting
);
NTSTATUS
NTAPI
NtCreateProfileEx(
__out PHANDLE ProfileHandle,
__in_opt HANDLE Process,
__in PVOID ProfileBase,
__in SIZE_T ProfileSize,
__in ULONG BucketSize,
__in PULONG Buffer,
__in ULONG BufferSize,
__in KPROFILE_SOURCE ProfileSource,
__in ULONG GroupAffinityCount,
__in_opt PGROUP_AFFINITY GroupAffinity
);
NTSTATUS
NTAPI
NtCreateWorkerFactory(
__out PHANDLE WorkerFactoryHandleReturn,
__in ACCESS_MASK DesiredAccess,
__in_opt POBJECT_ATTRIBUTES ObjectAttributes,
__in HANDLE CompletionPortHandle,
__in HANDLE WorkerProcessHandle,
__in PVOID StartRoutine,
__in_opt PVOID StartParameter,
__in_opt ULONG MaxThreadCount,
__in_opt SIZE_T StackReserve,
__in_opt SIZE_T StackCommit
);
NTSTATUS
NTAPI
NtFlushInstallUILanguage(
__in LANGID InstallUILanguage,
__in ULONG SetComittedFlag
);
NTSTATUS
NTAPI
NtGetMUIRegistryInfo(
__in ULONG Flags,
__inout PULONG DataSize,
__out PVOID Data
);
NTSTATUS
NTAPI
NtGetNlsSectionPtr(
__in ULONG SectionType,
__in ULONG SectionData,
__in PVOID ContextData,
__out PVOID *SectionPointer,
__out PULONG SectionSize
);
NTSTATUS
NTAPI
NtIsUILanguageComitted(
VOID
);
NTSTATUS
NTAPI
NtReleaseCMFViewOwnership(
VOID
);
NTSTATUS
NTAPI
NtReleaseWorkerFactoryWorker(
__in HANDLE WorkerFactoryHandle
);
NTSTATUS
NTAPI
NtWorkerFactoryWorkerReady(
__in HANDLE WorkerFactoryHandle
);
NTSTATUS
NTAPI
NtQueryInformationWorkerFactory(
__in HANDLE WorkerFactoryHandle,
__in WORKERFACTORYINFOCLASS WorkerFactoryInformationClass,
__out_bcount(WorkerFactoryInformationLength) PVOID WorkerFactoryInformation,
__in ULONG WorkerFactoryInformationLength,
__out_opt PULONG ReturnLength
);
NTSTATUS
NTAPI
NtSetInformationWorkerFactory(
__in HANDLE WorkerFactoryHandle,
__in WORKERFACTORYINFOCLASS WorkerFactoryInformationClass,
__in_bcount(WorkerFactoryInformationLength) PVOID WorkerFactoryInformation,
__in ULONG WorkerFactoryInformationLength
);
NTSTATUS
NTAPI
NtWaitForWorkViaWorkerFactory(
__in HANDLE WorkerFactoryHandle,
__out FILE_IO_COMPLETION_INFORMATION *MiniPacket
);
NTSTATUS
NTAPI
NtShutdownWorkerFactory(
__in HANDLE WorkerFactoryHandle,
__inout volatile LONG *PendingWorkerCount
);
NTSTATUS
NTAPI
NtSetTimerEx(
__in HANDLE TimerHandle,
__in TIMER_SET_INFORMATION_CLASS TimerSetInformationClass,
__inout_bcount_opt(TimerSetInformationLength) PVOID TimerSetInformation,
__in ULONG TimerSetInformationLength
);
NTSTATUS
NTAPI
NtCancelTimer2(
__in HANDLE TimerHandle,
__out_opt PBOOLEAN CurrentState
);
NTSTATUS
NTAPI
NtSetTimer2(
__in HANDLE TimerHandle,
__in PLARGE_INTEGER DueTime,
__in_opt PLARGE_INTEGER Period,
__in PT2_SET_PARAMETERS Parameters
);
typedef struct _WNF_STATE_NAME {
ULONG Data[2];
} WNF_STATE_NAME, *PWNF_STATE_NAME;
typedef const WNF_STATE_NAME *PCWNF_STATE_NAME;
typedef enum _WNF_STATE_NAME_LIFETIME {
WnfWellKnownStateName,
WnfPermanentStateName,
WnfPersistentStateName,
WnfTemporaryStateName
} WNF_STATE_NAME_LIFETIME;
typedef enum _WNF_STATE_NAME_INFORMATION {
WnfInfoStateNameExist,
WnfInfoSubscribersPresent,
WnfInfoIsQuiescent
} WNF_STATE_NAME_INFORMATION;
typedef enum _WNF_DATA_SCOPE {
WnfDataScopeSystem,
WnfDataScopeSession,
WnfDataScopeUser,
WnfDataScopeProcess
} WNF_DATA_SCOPE;
typedef struct _WNF_TYPE_ID {
GUID TypeId;
} WNF_TYPE_ID, *PWNF_TYPE_ID;
typedef const WNF_TYPE_ID *PCWNF_TYPE_ID;
typedef ULONG WNF_CHANGE_STAMP, *PWNF_CHANGE_STAMP;
typedef ULONG LOGICAL;
typedef ULONG *PLOGICAL;
NTSTATUS
NTAPI
NtQueryWnfStateData(
_In_ PCWNF_STATE_NAME StateName,
_In_opt_ PCWNF_TYPE_ID TypeId,
_In_opt_ const VOID* ExplicitScope,
_Out_ PWNF_CHANGE_STAMP ChangeStamp,
_Out_writes_bytes_to_opt_(*BufferSize, *BufferSize) PVOID Buffer,
_Inout_ PULONG BufferSize
);
NTSTATUS
NTAPI
NtUpdateWnfStateData(
_In_ PCWNF_STATE_NAME StateName,
_In_reads_bytes_opt_(Length) const VOID* Buffer,
_In_opt_ ULONG Length,
_In_opt_ PCWNF_TYPE_ID TypeId,
_In_opt_ const PVOID ExplicitScope,
_In_ WNF_CHANGE_STAMP MatchingChangeStamp,
_In_ LOGICAL CheckStamp
);
#endif /* _NTEXAPI_H_ 1 */