-
-/* $Id: zw.h,v 1.20 2003/11/21 18:42:05 navaraf Exp $
+/* $Id$
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
LONG EventState;
} EVENT_BASIC_INFORMATION, *PEVENT_BASIC_INFORMATION;
+// wmi trace event data
+typedef struct _EVENT_TRACE_HEADER {
+ USHORT Size;
+ union {
+ USHORT FieldTypeFlags;
+ struct {
+ UCHAR HeaderType;
+ UCHAR MarkerFlags;
+ };
+ };
+ union {
+ ULONG Version;
+ struct {
+ UCHAR Type;
+ UCHAR Level;
+ USHORT Version;
+ } Class;
+ };
+ ULONG ThreadId;
+ ULONG ProcessId;
+ LARGE_INTEGER TimeStamp;
+ union {
+ GUID Guid;
+ ULONGLONG GuidPtr;
+ };
+ union {
+ struct {
+ ULONG ClientContext;
+ ULONG Flags;
+ };
+ struct {
+ ULONG KernelTime;
+ ULONG UserTime;
+ };
+ ULONG64 ProcessorTime;
+ };
+} EVENT_TRACE_HEADER, *PEVENT_TRACE_HEADER;
+
+
+typedef struct _FILE_USER_QUOTA_INFORMATION {
+ ULONG NextEntryOffset;
+ ULONG SidLength;
+ LARGE_INTEGER ChangeTime;
+ LARGE_INTEGER QuotaUsed;
+ LARGE_INTEGER QuotaThreshold;
+ LARGE_INTEGER QuotaLimit;
+ SID Sid[1];
+} FILE_USER_QUOTA_INFORMATION, *PFILE_USER_QUOTA_INFORMATION;
+
+
//#define LCID ULONG
//#define SECURITY_INFORMATION ULONG
//typedef ULONG SECURITY_INFORMATION;
+#ifndef __USE_NT_LPC__
+NTSTATUS STDCALL
+NtAcceptConnectPort (OUT PHANDLE PortHandle,
+ IN PVOID Context,
+ IN PLPC_MESSAGE ServerReply,
+ IN BOOLEAN AcceptIt,
+ IN PLPC_SECTION_WRITE WriteMap,
+ IN PLPC_SECTION_READ ReadMap);
+#else
+NTSTATUS STDCALL
+NtAcceptConnectPort (PHANDLE PortHandle,
+ ULONG PortIdentifier,
+ PLPC_MESSAGE ServerReply,
+ BOOLEAN AcceptIt,
+ PLPC_SECTION_WRITE WriteMap,
+ PLPC_SECTION_READ ReadMap);
+#endif /* ndef __USE_NT_LPC__ */
+
+NTSTATUS
+STDCALL
+NtAddBootEntry(
+ IN PUNICODE_STRING EntryName,
+ IN PUNICODE_STRING EntryValue
+ );
+
+NTSTATUS
+STDCALL
+ZwAddBootEntry(
+ IN PUNICODE_STRING EntryName,
+ IN PUNICODE_STRING EntryValue
+ );
+
/*
* FUNCTION: Adjusts the groups in an access token
* ARGUMENTS:
IN ULONG AllocationType,
IN ULONG Protect);
+
+
+NTSTATUS
+STDCALL
+NtAssignProcessToJobObject(
+ HANDLE JobHandle,
+ HANDLE ProcessHandle);
+
+NTSTATUS
+STDCALL
+ZwAssignProcessToJobObject(
+ HANDLE JobHandle,
+ HANDLE ProcessHandle);
+
/*
* FUNCTION: Returns from a callback into user mode
* ARGUMENTS:
IN HANDLE EventHandle
);
+NTSTATUS
+STDCALL
+NtCreateJobObject(
+ PHANDLE JobHandle,
+ ACCESS_MASK DesiredAccess,
+ POBJECT_ATTRIBUTES ObjectAttributes
+ );
+
+NTSTATUS
+STDCALL
+ZwCreateJobObject(
+ PHANDLE JobHandle,
+ ACCESS_MASK DesiredAccess,
+ POBJECT_ATTRIBUTES ObjectAttributes
+ );
+
+
/*
* FUNCTION: Closes an object handle
* ARGUMENTS:
IN BOOLEAN GenerateOnClose
);
+
+NTSTATUS STDCALL
+NtCompleteConnectPort (HANDLE PortHandle);
+
+NTSTATUS STDCALL
+ZwCompleteConnectPort (HANDLE PortHandle);
+
+
+NTSTATUS STDCALL
+NtConnectPort (PHANDLE PortHandle,
+ PUNICODE_STRING PortName,
+ PSECURITY_QUALITY_OF_SERVICE SecurityQos,
+ PLPC_SECTION_WRITE SectionInfo,
+ PLPC_SECTION_READ MapInfo,
+ PULONG MaxMessageSize,
+ PVOID ConnectInfo,
+ PULONG ConnectInfoLength);
+
+NTSTATUS STDCALL
+ZwConnectPort (PHANDLE PortHandle,
+ PUNICODE_STRING PortName,
+ PSECURITY_QUALITY_OF_SERVICE SecurityQos,
+ PLPC_SECTION_WRITE SectionInfo,
+ PLPC_SECTION_READ MapInfo,
+ PULONG MaxMessageSize,
+ PVOID ConnectInfo,
+ PULONG ConnectInfoLength);
+
/*
* FUNCTION: Creates a directory object
* ARGUMENTS:
NtCreateEvent(
OUT PHANDLE EventHandle,
IN ACCESS_MASK DesiredAccess,
- IN POBJECT_ATTRIBUTES ObjectAttributes,
- IN BOOLEAN ManualReset,
+ IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
+ IN EVENT_TYPE EventType,
IN BOOLEAN InitialState
);
ZwCreateEvent(
OUT PHANDLE EventHandle,
IN ACCESS_MASK DesiredAccess,
- IN POBJECT_ATTRIBUTES ObjectAttributes,
- IN BOOLEAN ManualReset,
+ IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
+ IN EVENT_TYPE EventType,
IN BOOLEAN InitialState
);
NtCreateMutant(
OUT PHANDLE MutantHandle,
IN ACCESS_MASK DesiredAccess,
- IN POBJECT_ATTRIBUTES ObjectAttributes,
+ IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN BOOLEAN InitialOwner
);
ZwCreateMutant(
OUT PHANDLE MutantHandle,
IN ACCESS_MASK DesiredAccess,
- IN POBJECT_ATTRIBUTES ObjectAttributes,
+ IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN BOOLEAN InitialOwner
);
+/*
+ * FUNCTION: Creates a named pipe
+ * ARGUMENTS:
+ * NamedPipeFileHandle (OUT) = Caller supplied storage for the
+ * resulting handle
+ * DesiredAccess = Specifies the type of access that the caller
+ * requires to the file boject
+ * ObjectAttributes = Points to a structure that specifies the
+ * object attributes.
+ * IoStatusBlock = Points to a variable that receives the final
+ * completion status and information
+ * ShareAccess = Specifies the limitations on sharing of the file.
+ * This parameter can be zero or any compatible
+ * combination of the following flags
+ * FILE_SHARE_READ
+ * FILE_SHARE_WRITE
+ * CreateDisposition = Specifies what to do depending on whether
+ * the file already exists. This must be one of
+ * the following values
+ * FILE_OPEN
+ * FILE_CREATE
+ * FILE_OPEN_IF
+ * CreateOptions = Specifies the options to be applied when
+ * creating or opening the file, as a compatible
+ * combination of the following flags
+ * FILE_WRITE_THROUGH
+ * FILE_SYNCHRONOUS_IO_ALERT
+ * FILE_SYNCHRONOUS_IO_NONALERT
+ * TypeMessage = Specifies whether the data written to the pipe is
+ * interpreted as a sequence of messages or as a
+ * stream of bytes
+ * ReadModeMessage = Specifies whether the data read from the pipe
+ * is interpreted as a sequence of messages or as
+ * a stream of bytes
+ * NonBlocking = Specifies whether non-blocking mode is enabled
+ * MaxInstances = Specifies the maximum number of instancs that can
+ * be created for this pipe
+ * InBufferSize = Specifies the number of bytes to reserve for the
+ * input buffer
+ * OutBufferSize = Specifies the number of bytes to reserve for the
+ * output buffer
+ * DefaultTimeout = Optionally points to a variable that specifies
+ * the default timeout value in units of
+ * 100-nanoseconds.
+ * REMARKS: This funciton maps to the win32 function CreateNamedPipe
+ * RETURNS:
+ * Status
+ */
+NTSTATUS STDCALL
+NtCreateNamedPipeFile (OUT PHANDLE NamedPipeFileHandle,
+ IN ACCESS_MASK DesiredAccess,
+ IN POBJECT_ATTRIBUTES ObjectAttributes,
+ OUT PIO_STATUS_BLOCK IoStatusBlock,
+ IN ULONG ShareAccess,
+ IN ULONG CreateDisposition,
+ IN ULONG CreateOptions,
+ IN ULONG NamedPipeType,
+ IN ULONG ReadMode,
+ IN ULONG CompletionMode,
+ IN ULONG MaxInstances,
+ IN ULONG InBufferSize,
+ IN ULONG OutBufferSize,
+ IN PLARGE_INTEGER DefaultTimeOut);
+
+NTSTATUS STDCALL
+ZwCreateNamedPipeFile (OUT PHANDLE NamedPipeFileHandle,
+ IN ACCESS_MASK DesiredAccess,
+ IN POBJECT_ATTRIBUTES ObjectAttributes,
+ OUT PIO_STATUS_BLOCK IoStatusBlock,
+ IN ULONG ShareAccess,
+ IN ULONG CreateDisposition,
+ IN ULONG CreateOptions,
+ IN ULONG NamedPipeType,
+ IN ULONG ReadMode,
+ IN ULONG CompletionMode,
+ IN ULONG MaxInstances,
+ IN ULONG InBufferSize,
+ IN ULONG OutBufferSize,
+ IN PLARGE_INTEGER DefaultTimeOut);
+
+
+NTSTATUS STDCALL
+NtCreatePort (PHANDLE PortHandle,
+ POBJECT_ATTRIBUTES ObjectAttributes,
+ ULONG MaxConnectInfoLength,
+ ULONG MaxDataLength,
+ ULONG NPMessageQueueSize OPTIONAL);
+
+NTSTATUS STDCALL
+NtCreatePort (PHANDLE PortHandle,
+ POBJECT_ATTRIBUTES ObjectAttributes,
+ ULONG MaxConnectInfoLength,
+ ULONG MaxDataLength,
+ ULONG NPMessageQueueSize OPTIONAL);
+
+
/*
* FUNCTION: Creates a process.
* ARGUMENTS:
* This function maps to the win32 CreateProcess.
* RETURNS: Status
*/
-NTSTATUS
-STDCALL
+NTSTATUS
+STDCALL
NtCreateProcess(
OUT PHANDLE ProcessHandle,
IN ACCESS_MASK DesiredAccess,
IN HANDLE ExceptionPort OPTIONAL
);
-NTSTATUS
-STDCALL
+NTSTATUS
+STDCALL
ZwCreateProcess(
OUT PHANDLE ProcessHandle,
IN ACCESS_MASK DesiredAccess,
NTSTATUS
STDCALL
-NtCreateSection(
- OUT PHANDLE SectionHandle,
+NtCreateSection(
+ OUT PHANDLE SectionHandle,
IN ACCESS_MASK DesiredAccess,
- IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
- IN PLARGE_INTEGER MaximumSize OPTIONAL,
+ IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
+ IN PLARGE_INTEGER MaximumSize OPTIONAL,
IN ULONG SectionPageProtection OPTIONAL,
IN ULONG AllocationAttributes,
IN HANDLE FileHandle OPTIONAL
NTSTATUS
STDCALL
-ZwCreateSection(
- OUT PHANDLE SectionHandle,
+ZwCreateSection(
+ OUT PHANDLE SectionHandle,
IN ACCESS_MASK DesiredAccess,
- IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
- IN PLARGE_INTEGER MaximumSize OPTIONAL,
+ IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
+ IN PLARGE_INTEGER MaximumSize OPTIONAL,
IN ULONG SectionPageProtection OPTIONAL,
IN ULONG AllocationAttributes,
IN HANDLE FileHandle OPTIONAL
NTSTATUS
STDCALL
NtCreateSymbolicLinkObject(
- OUT PHANDLE SymbolicLinkHandle,
+ OUT PHANDLE LinkHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
- IN PUNICODE_STRING Name
+ IN PUNICODE_STRING LinkTarget
);
NTSTATUS
STDCALL
ZwCreateSymbolicLinkObject(
- OUT PHANDLE SymbolicLinkHandle,
+ OUT PHANDLE LinkHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
- IN PUNICODE_STRING Name
+ IN PUNICODE_STRING LinkTarget
);
/*
);
#endif
+
+NTSTATUS STDCALL
+NtCreateWaitablePort (PHANDLE PortHandle,
+ POBJECT_ATTRIBUTES ObjectAttributes,
+ ULONG MaxConnectInfoLength,
+ ULONG MaxDataLength,
+ ULONG NPMessageQueueSize OPTIONAL);
+
+NTSTATUS STDCALL
+ZwCreateWaitablePort (PHANDLE PortHandle,
+ POBJECT_ATTRIBUTES ObjectAttributes,
+ ULONG MaxConnectInfoLength,
+ ULONG MaxDataLength,
+ ULONG NPMessageQueueSize OPTIONAL);
+
+
/*
* FUNCTION: Deletes an atom from the global atom table
* ARGUMENTS:
IN RTL_ATOM Atom
);
+NTSTATUS
+STDCALL
+NtDeleteBootEntry(
+ IN PUNICODE_STRING EntryName,
+ IN PUNICODE_STRING EntryValue
+ );
+
+NTSTATUS
+STDCALL
+ZwDeleteBootEntry(
+ IN PUNICODE_STRING EntryName,
+ IN PUNICODE_STRING EntryValue
+ );
+
/*
* FUNCTION: Deletes a file or a directory
* ARGUMENTS:
IN PUNICODE_STRING DisplayString
);
+
+NTSTATUS
+STDCALL
+NtEnumerateBootEntries(
+ IN ULONG Unknown1,
+ IN ULONG Unknown2
+ );
+
+NTSTATUS
+STDCALL
+ZwEnumerateBootEntries(
+ IN ULONG Unknown1,
+ IN ULONG Unknown2
+ );
+
+
/*
* FUNCTION: Returns information about the subkeys of an open key
* ARGUMENTS:
* IoStatusBlock = Caller should supply storage for
* IoControlCode = Contains the File System Control command. This is an
* index to the structures in InputBuffer and OutputBuffer.
- * FSCTL_GET_RETRIEVAL_POINTERS MAPPING_PAIR
- * FSCTL_GET_RETRIEVAL_POINTERS GET_RETRIEVAL_DESCRIPTOR
- * FSCTL_GET_VOLUME_BITMAP BITMAP_DESCRIPTOR
- * FSCTL_MOVE_FILE MOVEFILE_DESCRIPTOR
+ * FSCTL_GET_RETRIEVAL_POINTERS [Input/Output] RETRIEVAL_POINTERS_BUFFER
+ * FSCTL_GET_VOLUME_BITMAP [Input] STARTING_LCN_INPUT_BUFFER
+ * FSCTL_GET_VOLUME_BITMAP [Output] VOLUME_BITMAP_BUFFER
+ * FSCTL_MOVE_FILE [Input] MOVE_FILE_DATA
*
- * InputBuffer = Caller should supply storage for input buffer if FCTL expects one.
+ * InputBuffer = Caller should supply storage for input buffer if FSCTL expects one.
* InputBufferSize = Size of the input bufffer
- * OutputBuffer = Caller should supply storage for output buffer if FCTL expects one.
+ * OutputBuffer = Caller should supply storage for output buffer if FSCTL expects one.
* OutputBufferSize = Size of the input bufffer
* RETURNS: Status [ STATUS_SUCCESS | STATUS_PENDING | STATUS_ACCESS_DENIED | STATUS_INSUFFICIENT_RESOURCES |
* STATUS_INVALID_PARAMETER | STATUS_INVALID_DEVICE_REQUEST ]
* FUNCTION: Retrieves the processor context of a thread
* ARGUMENTS:
* ThreadHandle = Handle to a thread
- * Context (OUT) = Caller allocated storage for the processor context
+ * ThreadContext (OUT) = Caller allocated storage for the processor context
* RETURNS: Status
*/
NTSTATUS
STDCALL
NtGetContextThread(
- IN HANDLE ThreadHandle,
- OUT PCONTEXT Context
+ IN HANDLE ThreadHandle,
+ OUT PCONTEXT ThreadContext
);
NTSTATUS
STDCALL
ZwGetContextThread(
- IN HANDLE ThreadHandle,
- OUT PCONTEXT Context
+ IN HANDLE ThreadHandle,
+ OUT PCONTEXT ThreadContext
);
+
+NTSTATUS STDCALL
+NtImpersonateClientOfPort (HANDLE PortHandle,
+ PLPC_MESSAGE ClientMessage);
+
+NTSTATUS STDCALL
+ZwImpersonateClientOfPort (HANDLE PortHandle,
+ PLPC_MESSAGE ClientMessage);
+
/*
* FUNCTION: Sets a thread to impersonate another
* ARGUMENTS:
IN PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService
);
+NTSTATUS
+STDCALL
+NtInitiatePowerAction (
+ IN POWER_ACTION SystemAction,
+ IN SYSTEM_POWER_STATE MinSystemState,
+ IN ULONG Flags,
+ IN BOOLEAN Asynchronous
+);
+
+NTSTATUS
+STDCALL
+ZwInitiatePowerAction (
+ IN POWER_ACTION SystemAction,
+ IN SYSTEM_POWER_STATE MinSystemState,
+ IN ULONG Flags,
+ IN BOOLEAN Asynchronous
+);
/*
* FUNCTION: Initializes the registry.
* ARGUMENTS:
BOOLEAN SetUpBoot
);
+NTSTATUS
+STDCALL
+NtIsProcessInJob(
+ IN HANDLE ProcessHandle, // ProcessHandle must grant PROCESS_QUERY_INFORMATION access.
+ IN HANDLE JobHandle OPTIONAL // JobHandle must JOB_OBJECT_QUERY grant access. Defaults to the current process's job object.
+ );
+
+NTSTATUS
+STDCALL
+ZwIsProcessInJob(
+ IN HANDLE ProcessHandle, // ProcessHandle must grant PROCESS_QUERY_INFORMATION access.
+ IN HANDLE JobHandle OPTIONAL // JobHandle must JOB_OBJECT_QUERY grant access. Defaults to the current process's job object.
+ );
+
+NTSTATUS STDCALL
+NtListenPort (HANDLE PortHandle,
+ PLPC_MESSAGE LpcMessage);
+
+NTSTATUS STDCALL
+ZwListenPort (HANDLE PortHandle,
+ PLPC_MESSAGE LpcMessage);
+
+
/*
* FUNCTION: Loads a driver.
* ARGUMENTS:
* RETURNS: Status
*/
+
+NTSTATUS
+STDCALL
+NtMakePermanentObject(
+ IN HANDLE ObjectHandle
+ );
+
+NTSTATUS
+STDCALL
+ZwMakePermanentObject(
+ IN HANDLE ObjectHandle
+ );
+
NTSTATUS
STDCALL
NtMakeTemporaryObject(
- IN HANDLE Handle
+ IN HANDLE ObjectHandle
);
NTSTATUS
STDCALL
ZwMakeTemporaryObject(
- IN HANDLE Handle
+ IN HANDLE ObjectHandle
);
/*
* FUNCTION: Maps a view of a section into the virtual address space of a
IN PVOID ApcContext OPTIONAL,
OUT PIO_STATUS_BLOCK IoStatusBlock,
IN ULONG CompletionFilter,
- IN BOOLEAN Asynchroneous,
- OUT PVOID ChangeBuffer,
+ IN BOOLEAN WatchSubtree,
+ OUT PVOID Buffer,
IN ULONG Length,
- IN BOOLEAN WatchSubtree
+ IN BOOLEAN Asynchronous
);
NTSTATUS
IN PVOID ApcContext OPTIONAL,
OUT PIO_STATUS_BLOCK IoStatusBlock,
IN ULONG CompletionFilter,
- IN BOOLEAN Asynchroneous,
- OUT PVOID ChangeBuffer,
+ IN BOOLEAN WatchSubtree,
+ OUT PVOID Buffer,
IN ULONG Length,
- IN BOOLEAN WatchSubtree
+ IN BOOLEAN Asynchronous
);
/*
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes
);
-
+
+
+NTSTATUS
+STDCALL
+NtOpenJobObject(
+ PHANDLE JobHandle,
+ ACCESS_MASK DesiredAccess,
+ POBJECT_ATTRIBUTES ObjectAttributes
+ );
+
+NTSTATUS
+STDCALL
+ZwOpenJobObject(
+ PHANDLE JobHandle,
+ ACCESS_MASK DesiredAccess,
+ POBJECT_ATTRIBUTES ObjectAttributes
+ );
/*
* FUNCTION: Opens an existing key in the registry
* ARGUMENTS:
OUT PHANDLE TokenHandle
);
+
+NTSTATUS
+STDCALL
+NtOpenProcessTokenEx(
+ IN HANDLE ProcessHandle,
+ IN ACCESS_MASK DesiredAccess,
+ IN ULONG HandleAttributes,
+ OUT PHANDLE TokenHandle
+ );
+
+
+NTSTATUS
+STDCALL
+ZwOpenProcessTokenEx(
+ IN HANDLE ProcessHandle,
+ IN ACCESS_MASK DesiredAccess,
+ IN ULONG HandleAttributes,
+ OUT PHANDLE TokenHandle
+ );
/*
* FUNCTION: Opens an existing section object
* ARGUMENTS:
NTSTATUS
STDCALL
NtOpenSemaphore(
- IN HANDLE SemaphoreHandle,
+ OUT PHANDLE SemaphoreHandle,
IN ACCESS_MASK DesiredAcces,
IN POBJECT_ATTRIBUTES ObjectAttributes
);
NTSTATUS
STDCALL
ZwOpenSemaphore(
- IN HANDLE SemaphoreHandle,
+ OUT PHANDLE SemaphoreHandle,
IN ACCESS_MASK DesiredAcces,
IN POBJECT_ATTRIBUTES ObjectAttributes
);
NTSTATUS
STDCALL
NtOpenSymbolicLinkObject(
- OUT PHANDLE SymbolicLinkHandle,
+ OUT PHANDLE LinkHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes
);
NTSTATUS
STDCALL
ZwOpenSymbolicLinkObject(
- OUT PHANDLE SymbolicLinkHandle,
+ OUT PHANDLE LinkHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes
);
IN BOOLEAN OpenAsSelf,
OUT PHANDLE TokenHandle
);
+
+NTSTATUS
+STDCALL
+NtOpenThreadTokenEx(
+ IN HANDLE ThreadHandle,
+ IN ACCESS_MASK DesiredAccess,
+ IN BOOLEAN OpenAsSelf,
+ IN ULONG HandleAttributes,
+ OUT PHANDLE TokenHandle
+ );
+
+
+NTSTATUS
+STDCALL
+ZwOpenThreadTokenEx(
+ IN HANDLE ThreadHandle,
+ IN ACCESS_MASK DesiredAccess,
+ IN BOOLEAN OpenAsSelf,
+ IN ULONG HandleAttributes,
+ OUT PHANDLE TokenHandle
+ );
+
/*
* FUNCTION: Opens an existing timer
* ARGUMENTS:
* RETURNS: Status
*/
+
+NTSTATUS
+STDCALL
+NtPowerInformation(
+ IN POWER_INFORMATION_LEVEL PowerInformationLevel,
+ IN PVOID InputBuffer OPTIONAL,
+ IN ULONG InputBufferLength,
+ OUT PVOID OutputBuffer OPTIONAL,
+ IN ULONG OutputBufferLength
+ );
+
+NTSTATUS
+STDCALL
+ZwPowerInformation(
+ IN POWER_INFORMATION_LEVEL PowerInformationLevel,
+ IN PVOID InputBuffer OPTIONAL,
+ IN ULONG InputBufferLength,
+ OUT PVOID OutputBuffer OPTIONAL,
+ IN ULONG OutputBufferLength
+ );
+
NTSTATUS
STDCALL
NtPrivilegeCheck(
STDCALL
NtPulseEvent(
IN HANDLE EventHandle,
- IN PULONG PulseCount OPTIONAL
+ OUT PLONG PreviousState OPTIONAL
);
NTSTATUS
STDCALL
ZwPulseEvent(
IN HANDLE EventHandle,
- IN PULONG PulseCount OPTIONAL
+ OUT PLONG PreviousState OPTIONAL
);
/*
* RETURNS: Status
*/
-NTSTATUS STDCALL
-NtQueryAttributesFile(IN POBJECT_ATTRIBUTES ObjectAttributes,
- OUT PFILE_BASIC_INFORMATION FileInformation);
+NTSTATUS
+STDCALL
+NtQueryAttributesFile(
+ IN POBJECT_ATTRIBUTES ObjectAttributes,
+ OUT PFILE_BASIC_INFORMATION FileInformation
+ );
-NTSTATUS STDCALL
-ZwQueryAttributesFile(IN POBJECT_ATTRIBUTES ObjectAttributes,
- OUT PFILE_BASIC_INFORMATION FileInformation);
+NTSTATUS
+STDCALL
+ZwQueryAttributesFile(
+ IN POBJECT_ATTRIBUTES ObjectAttributes,
+ OUT PFILE_BASIC_INFORMATION FileInformation
+ );
+
+
+NTSTATUS
+STDCALL
+NtQueryBootEntryOrder(
+ IN ULONG Unknown1,
+ IN ULONG Unknown2
+ );
+
+NTSTATUS
+STDCALL
+ZwQueryBootEntryOrder(
+ IN ULONG Unknown1,
+ IN ULONG Unknown2
+ );
+
+NTSTATUS
+STDCALL
+NtQueryBootOptions(
+ IN ULONG Unknown1,
+ IN ULONG Unknown2
+ );
+NTSTATUS
+STDCALL
+ZwQueryBootOptions(
+ IN ULONG Unknown1,
+ IN ULONG Unknown2
+ );
/*
* FUNCTION: Queries the default locale id
* ARGUMENTS:
OUT PLCID DefaultLocaleId
);
+NTSTATUS
+STDCALL
+NtQueryDefaultUILanguage(
+ PLANGID LanguageId
+ );
+
+NTSTATUS
+STDCALL
+ZwQueryDefaultUILanguage(
+ PLANGID LanguageId
+ );
+
/*
* FUNCTION: Queries a directory file.
* ARGUMENTS:
IN EVENT_INFORMATION_CLASS EventInformationClass,
OUT PVOID EventInformation,
IN ULONG EventInformationLength,
- OUT PULONG ReturnLength
+ OUT PULONG ReturnLength OPTIONAL
);
NTSTATUS
STDCALL
IN EVENT_INFORMATION_CLASS EventInformationClass,
OUT PVOID EventInformation,
IN ULONG EventInformationLength,
- OUT PULONG ReturnLength
+ OUT PULONG ReturnLength OPTIONAL
);
NTSTATUS STDCALL
FileNamesInformation FILE_NAMES_INFORMATION
FileDispositionInformation FILE_DISPOSITION_INFORMATION
FilePositionInformation FILE_POSITION_INFORMATION
- FileFullEaInformation FILE_FULL_EA_INFORMATION
+ FileFullEaInformation FILE_FULL_EA_INFORMATION
FileModeInformation FILE_MODE_INFORMATION
FileAlignmentInformation FILE_ALIGNMENT_INFORMATION
FileAllInformation FILE_ALL_INFORMATION
FilePipeRemoteInformation
FileMailslotQueryInformation
FileMailslotSetInformation
- FileCompressionInformation FILE_COMPRESSION_INFORMATION
+ FileCompressionInformation FILE_COMPRESSION_INFORMATION
FileCopyOnWriteInformation
FileCompletionInformation IO_COMPLETION_CONTEXT
FileMoveClusterInformation
FileContentIndexInformation
FileInheritContentIndexInformation
FileOleInformation
- FileMaximumInformation
+ FileMaximumInformation
* REMARK:
* This procedure maps to the win32 GetShortPathName, GetLongPathName,
FILE_INFORMATION_CLASS FileInformationClass
);
+NTSTATUS
+STDCALL
+NtQueryInformationJobObject(
+ HANDLE JobHandle,
+ JOBOBJECTINFOCLASS JobInformationClass,
+ PVOID JobInformation,
+ ULONG JobInformationLength,
+ PULONG ReturnLength
+ );
+
+NTSTATUS
+STDCALL
+ZwQueryInformationJobObject(
+ HANDLE JobHandle,
+ JOBOBJECTINFOCLASS JobInformationClass,
+ PVOID JobInformation,
+ ULONG JobInformationLength,
+ PULONG ReturnLength
+ );
+
+NTSTATUS STDCALL
+NtQueryInformationPort (HANDLE PortHandle,
+ CINT PortInformationClass,
+ PVOID PortInformation,
+ ULONG PortInformationLength,
+ PULONG ReturnLength);
+
+#ifndef __USE_W32API
+NTSTATUS STDCALL
+ZwQueryInformationPort (HANDLE PortHandle,
+ CINT PortInformationClass,
+ PVOID PortInformation,
+ ULONG PortInformationLength,
+ PULONG ReturnLength);
+#endif
/*
* FUNCTION: Queries the information of a thread object.
IN THREADINFOCLASS ThreadInformationClass,
OUT PVOID ThreadInformation,
IN ULONG ThreadInformationLength,
- OUT PULONG ReturnLength
+ OUT PULONG ReturnLength OPTIONAL
+ );
+
+NTSTATUS
+STDCALL
+ZwQueryInformationThread(
+ IN HANDLE ThreadHandle,
+ IN THREADINFOCLASS ThreadInformationClass,
+ OUT PVOID ThreadInformation,
+ IN ULONG ThreadInformationLength,
+ OUT PULONG ReturnLength OPTIONAL
);
OUT PULONG ReturnLength
);
+NTSTATUS
+STDCALL
+NtQueryInstallUILanguage(
+ PLANGID LanguageId
+ );
+
+NTSTATUS
+STDCALL
+ZwQueryInstallUILanguage(
+ PLANGID LanguageId
+ );
+
NTSTATUS
STDCALL
NtQueryIoCompletion(
);
+
+NTSTATUS
+STDCALL
+NtQueryQuotaInformationFile(
+ IN HANDLE FileHandle,
+ OUT PIO_STATUS_BLOCK IoStatusBlock,
+ OUT PVOID Buffer,
+ IN ULONG Length,
+ IN BOOLEAN ReturnSingleEntry,
+ IN PVOID SidList OPTIONAL,
+ IN ULONG SidListLength,
+ IN PSID StartSid OPTIONAL,
+ IN BOOLEAN RestartScan
+ );
+
+
+NTSTATUS
+STDCALL
+ZwQueryQuotaInformationFile(
+ IN HANDLE FileHandle,
+ OUT PIO_STATUS_BLOCK IoStatusBlock,
+ OUT PVOID Buffer,
+ IN ULONG Length,
+ IN BOOLEAN ReturnSingleEntry,
+ IN PVOID SidList OPTIONAL,
+ IN ULONG SidListLength,
+ IN PSID StartSid OPTIONAL,
+ IN BOOLEAN RestartScan
+ );
// draft
NTSTATUS
STDCALL
NtQueryMutant(
IN HANDLE MutantHandle,
- IN CINT MutantInformationClass,
+ IN MUTANT_INFORMATION_CLASS MutantInformationClass,
OUT PVOID MutantInformation,
- IN ULONG Length,
- OUT PULONG ResultLength
+ IN ULONG MutantInformationLength,
+ OUT PULONG ResultLength OPTIONAL
);
NTSTATUS
STDCALL
ZwQueryMutant(
IN HANDLE MutantHandle,
- IN CINT MutantInformationClass,
+ IN MUTANT_INFORMATION_CLASS MutantInformationClass,
OUT PVOID MutantInformation,
- IN ULONG Length,
- OUT PULONG ResultLength
+ IN ULONG MutantInformationLength,
+ OUT PULONG ResultLength OPTIONAL
);
/*
* FUNCTION: Queries the system ( high-resolution ) performance counter.
* ARGUMENTS:
- * Counter = Performance counter
- * Frequency = Performance frequency
+ * PerformanceCounter = Performance counter
+ * PerformanceFrequency = Performance frequency
* REMARKS:
This procedure queries a tick count faster than 10ms ( The resolution for Intel®-based CPUs is about 0.8 microseconds.)
This procedure maps to the win32 QueryPerformanceCounter, QueryPerformanceFrequency
NTSTATUS
STDCALL
NtQueryPerformanceCounter(
- IN PLARGE_INTEGER Counter,
- IN PLARGE_INTEGER Frequency
+ OUT PLARGE_INTEGER PerformanceCounter,
+ OUT PLARGE_INTEGER PerformanceFrequency OPTIONAL
);
NTSTATUS
STDCALL
ZwQueryPerformanceCounter(
- IN PLARGE_INTEGER Counter,
- IN PLARGE_INTEGER Frequency
+ OUT PLARGE_INTEGER PerformanceCounter,
+ OUT PLARGE_INTEGER PerformanceFrequency OPTIONAL
);
/*
IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass,
OUT PVOID SemaphoreInformation,
IN ULONG Length,
- OUT PULONG ReturnLength
+ OUT PULONG ReturnLength OPTIONAL
);
NTSTATUS
IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass,
OUT PVOID SemaphoreInformation,
IN ULONG Length,
- OUT PULONG ReturnLength
+ OUT PULONG ReturnLength OPTIONAL
);
NTSTATUS
STDCALL
NtQuerySymbolicLinkObject(
- IN HANDLE SymLinkObjHandle,
+ IN HANDLE LinkHandle,
OUT PUNICODE_STRING LinkTarget,
- OUT PULONG DataWritten OPTIONAL
+ OUT PULONG ResultLength OPTIONAL
);
NTSTATUS
STDCALL
ZwQuerySymbolicLinkObject(
- IN HANDLE SymLinkObjHandle,
- OUT PUNICODE_STRING LinkName,
- OUT PULONG DataWritten OPTIONAL
+ IN HANDLE LinkHandle,
+ OUT PUNICODE_STRING LinkTarget,
+ OUT PULONG ResultLength OPTIONAL
);
NTSTATUS
STDCALL
NtQuerySystemEnvironmentValue(
- IN PUNICODE_STRING Name,
- OUT PVOID Value,
- ULONG Length,
- PULONG ReturnLength
+ IN PUNICODE_STRING VariableName,
+ OUT PWCHAR ValueBuffer,
+ IN ULONG ValueBufferLength,
+ OUT PULONG ReturnLength OPTIONAL
);
NTSTATUS
STDCALL
ZwQuerySystemEnvironmentValue(
- IN PUNICODE_STRING Name,
- OUT PVOID Value,
- ULONG Length,
- PULONG ReturnLength
+ IN PUNICODE_STRING VariableName,
+ OUT PWCHAR ValueBuffer,
+ IN ULONG ValueBufferLength,
+ OUT PULONG ReturnLength OPTIONAL
);
STDCALL
NtQueryTimer(
IN HANDLE TimerHandle,
- IN CINT TimerInformationClass,
+ IN TIMER_INFORMATION_CLASS TimerInformationClass,
OUT PVOID TimerInformation,
- IN ULONG Length,
- OUT PULONG ResultLength
+ IN ULONG TimerInformationLength,
+ OUT PULONG ReturnLength OPTIONAL
);
NTSTATUS
STDCALL
ZwQueryTimer(
IN HANDLE TimerHandle,
- IN CINT TimerInformationClass,
+ IN TIMER_INFORMATION_CLASS TimerInformationClass,
OUT PVOID TimerInformation,
- IN ULONG Length,
- OUT PULONG ResultLength
+ IN ULONG TimerInformationLength,
+ OUT PULONG ReturnLength OPTIONAL
);
/*
Key = Key = If a range is lock a matching key will allow the read to continue.
* RETURNS: Status
*
-*/
+*/
NTSTATUS
STDCALL
-NtReadFileScatter(
- IN HANDLE FileHandle,
- IN HANDLE Event OPTIONAL,
- IN PIO_APC_ROUTINE UserApcRoutine OPTIONAL,
- IN PVOID UserApcContext OPTIONAL,
- OUT PIO_STATUS_BLOCK UserIoStatusBlock,
- IN FILE_SEGMENT_ELEMENT BufferDescription[],
- IN ULONG BufferLength,
- IN PLARGE_INTEGER ByteOffset,
- IN PULONG Key OPTIONAL
- );
+NtReadFileScatter(
+ IN HANDLE FileHandle,
+ IN HANDLE Event OPTIONAL,
+ IN PIO_APC_ROUTINE UserApcRoutine OPTIONAL,
+ IN PVOID UserApcContext OPTIONAL,
+ OUT PIO_STATUS_BLOCK UserIoStatusBlock,
+ IN FILE_SEGMENT_ELEMENT BufferDescription[],
+ IN ULONG BufferLength,
+ IN PLARGE_INTEGER ByteOffset,
+ IN PULONG Key OPTIONAL
+ );
+
+NTSTATUS
+STDCALL
+ZwReadFileScatter(
+ IN HANDLE FileHandle,
+ IN HANDLE Event OPTIONAL,
+ IN PIO_APC_ROUTINE UserApcRoutine OPTIONAL,
+ IN PVOID UserApcContext OPTIONAL,
+ OUT PIO_STATUS_BLOCK UserIoStatusBlock,
+ IN FILE_SEGMENT_ELEMENT BufferDescription[],
+ IN ULONG BufferLength,
+ IN PLARGE_INTEGER ByteOffset,
+ IN PULONG Key OPTIONAL
+ );
+
+
+NTSTATUS STDCALL
+NtReadRequestData (HANDLE PortHandle,
+ PLPC_MESSAGE Message,
+ ULONG Index,
+ PVOID Buffer,
+ ULONG BufferLength,
+ PULONG ReturnLength);
+
+NTSTATUS STDCALL
+ZwReadRequestData (HANDLE PortHandle,
+ PLPC_MESSAGE Message,
+ ULONG Index,
+ PVOID Buffer,
+ ULONG BufferLength,
+ PULONG ReturnLength);
+
-NTSTATUS
-STDCALL
-ZwReadFileScatter(
- IN HANDLE FileHandle,
- IN HANDLE Event OPTIONAL,
- IN PIO_APC_ROUTINE UserApcRoutine OPTIONAL,
- IN PVOID UserApcContext OPTIONAL,
- OUT PIO_STATUS_BLOCK UserIoStatusBlock,
- IN FILE_SEGMENT_ELEMENT BufferDescription[],
- IN ULONG BufferLength,
- IN PLARGE_INTEGER ByteOffset,
- IN PULONG Key OPTIONAL
- );
/*
* FUNCTION: Copies a range of virtual memory to a buffer
* ARGUMENTS:
NTSTATUS
STDCALL
NtRegisterThreadTerminatePort(
- HANDLE TerminationPort
+ HANDLE PortHandle
);
NTSTATUS
STDCALL
ZwRegisterThreadTerminatePort(
- HANDLE TerminationPort
+ HANDLE PortHandle
);
/*
STDCALL
NtReleaseMutant(
IN HANDLE MutantHandle,
- IN PULONG ReleaseCount OPTIONAL
+ IN PLONG PreviousCount OPTIONAL
);
NTSTATUS
STDCALL
ZwReleaseMutant(
IN HANDLE MutantHandle,
- IN PULONG ReleaseCount OPTIONAL
+ IN PLONG PreviousCount OPTIONAL
);
/*
NtReleaseSemaphore(
IN HANDLE SemaphoreHandle,
IN LONG ReleaseCount,
- OUT PLONG PreviousCount
+ OUT PLONG PreviousCount OPTIONAL
);
NTSTATUS
ZwReleaseSemaphore(
IN HANDLE SemaphoreHandle,
IN LONG ReleaseCount,
- OUT PLONG PreviousCount
+ OUT PLONG PreviousCount OPTIONAL
);
/*
STDCALL
NtRemoveIoCompletion(
IN HANDLE IoCompletionHandle,
- OUT PULONG CompletionKey,
- OUT PULONG CompletionValue,
+ OUT PVOID *CompletionKey,
+ OUT PVOID *CompletionContext,
OUT PIO_STATUS_BLOCK IoStatusBlock,
IN PLARGE_INTEGER Timeout OPTIONAL
);
STDCALL
ZwRemoveIoCompletion(
IN HANDLE IoCompletionHandle,
- OUT PULONG CompletionKey,
- OUT PULONG CompletionValue,
+ OUT PVOID *CompletionKey,
+ OUT PVOID *CompletionValue,
OUT PIO_STATUS_BLOCK IoStatusBlock,
IN PLARGE_INTEGER Timeout OPTIONAL
);
NTSTATUS
STDCALL
NtReplaceKey(
- IN POBJECT_ATTRIBUTES ObjectAttributes,
+ IN POBJECT_ATTRIBUTES ObjectAttributes,
IN HANDLE Key,
- IN POBJECT_ATTRIBUTES ReplacedObjectAttributes
+ IN POBJECT_ATTRIBUTES ReplacedObjectAttributes
);
NTSTATUS
STDCALL
ZwReplaceKey(
- IN POBJECT_ATTRIBUTES ObjectAttributes,
+ IN POBJECT_ATTRIBUTES ObjectAttributes,
IN HANDLE Key,
- IN POBJECT_ATTRIBUTES ReplacedObjectAttributes
+ IN POBJECT_ATTRIBUTES ReplacedObjectAttributes
);
+
+NTSTATUS STDCALL
+NtReplyPort (HANDLE PortHandle,
+ PLPC_MESSAGE LpcReply);
+
+NTSTATUS STDCALL
+ZwReplyPort (HANDLE PortHandle,
+ PLPC_MESSAGE LpcReply);
+
+
+NTSTATUS STDCALL
+NtReplyWaitReceivePort (HANDLE PortHandle,
+ PULONG PortId,
+ PLPC_MESSAGE MessageReply,
+ PLPC_MESSAGE MessageRequest);
+
+NTSTATUS STDCALL
+ZwReplyWaitReceivePort (HANDLE PortHandle,
+ PULONG PortId,
+ PLPC_MESSAGE MessageReply,
+ PLPC_MESSAGE MessageRequest);
+
+
+NTSTATUS STDCALL
+NtReplyWaitReplyPort (HANDLE PortHandle,
+ PLPC_MESSAGE ReplyMessage);
+
+NTSTATUS STDCALL
+ZwReplyWaitReplyPort (HANDLE PortHandle,
+ PLPC_MESSAGE ReplyMessage);
+
+
+NTSTATUS STDCALL
+NtRequestPort (HANDLE PortHandle,
+ PLPC_MESSAGE LpcMessage);
+
+NTSTATUS STDCALL
+ZwRequestPort (HANDLE PortHandle,
+ PLPC_MESSAGE LpcMessage);
+
+
+NTSTATUS STDCALL
+NtRequestWaitReplyPort (HANDLE PortHandle,
+ PLPC_MESSAGE LpcReply,
+ PLPC_MESSAGE LpcRequest);
+
+NTSTATUS STDCALL
+ZwRequestWaitReplyPort (HANDLE PortHandle,
+ PLPC_MESSAGE LpcReply,
+ PLPC_MESSAGE LpcRequest);
+
/*
* FUNCTION: Resets a event to a non signaled state
* ARGUMENTS:
STDCALL
NtResetEvent(
HANDLE EventHandle,
- PULONG NumberOfWaitingThreads OPTIONAL
+ OUT PLONG PreviousState OPTIONAL
);
NTSTATUS
STDCALL
ZwResetEvent(
HANDLE EventHandle,
- PULONG NumberOfWaitingThreads OPTIONAL
+ OUT PLONG PreviousState OPTIONAL
);
//draft
NTSTATUS
STDCALL
NtResumeThread(
IN HANDLE ThreadHandle,
- OUT PULONG SuspendCount
+ OUT PULONG SuspendCount OPTIONAL
);
NTSTATUS
STDCALL
ZwResumeThread(
IN HANDLE ThreadHandle,
- OUT PULONG SuspendCount
+ OUT PULONG SuspendCount OPTIONAL
);
/*
* FUNCTION: Writes the content of a registry key to ascii file
IN HANDLE FileHandle
);
+NTSTATUS
+STDCALL
+NtSaveKeyEx(
+ IN HANDLE KeyHandle,
+ IN HANDLE FileHandle,
+ IN ULONG Flags // REG_STANDARD_FORMAT, etc..
+ );
+
+NTSTATUS
+STDCALL
+ZwSaveKeyEx(
+ IN HANDLE KeyHandle,
+ IN HANDLE FileHandle,
+ IN ULONG Flags // REG_STANDARD_FORMAT, etc..
+ );
+
+NTSTATUS
+STDCALL
+NtSetBootEntryOrder(
+ IN ULONG Unknown1,
+ IN ULONG Unknown2
+ );
+
+NTSTATUS
+STDCALL
+ZwSetBootEntryOrder(
+ IN ULONG Unknown1,
+ IN ULONG Unknown2
+ );
+
+NTSTATUS
+STDCALL
+NtSetBootOptions(
+ ULONG Unknown1,
+ ULONG Unknown2
+ );
+
+NTSTATUS
+STDCALL
+ZwSetBootOptions(
+ ULONG Unknown1,
+ ULONG Unknown2
+ );
+
+
/*
* FUNCTION: Sets the context of a specified thread.
* ARGUMENTS:
* ThreadHandle = Handle to the thread
- * Context = The processor context.
+ * ThreadContext = The processor context.
* RETURNS: Status
*/
STDCALL
NtSetContextThread(
IN HANDLE ThreadHandle,
- IN PCONTEXT Context
+ IN PCONTEXT ThreadContext
);
NTSTATUS
STDCALL
ZwSetContextThread(
IN HANDLE ThreadHandle,
- IN PCONTEXT Context
+ IN PCONTEXT ThreadContext
);
/*
IN LCID DefaultLocaleId
);
+NTSTATUS
+STDCALL
+NtSetDefaultUILanguage(
+ LANGID LanguageId
+ );
+
+NTSTATUS
+STDCALL
+ZwSetDefaultUILanguage(
+ LANGID LanguageId
+ );
/*
* FUNCTION: Sets the default hard error port
* ARGUMENTS:
STDCALL
NtSetEvent(
IN HANDLE EventHandle,
- PULONG NumberOfThreadsReleased
+ OUT PLONG PreviousState OPTIONAL
);
NTSTATUS
STDCALL
ZwSetEvent(
IN HANDLE EventHandle,
- PULONG NumberOfThreadsReleased
+ OUT PLONG PreviousState OPTIONAL
);
/*
IN FILE_INFORMATION_CLASS FileInformationClass
);
+NTSTATUS
+STDCALL
+NtSetInformationJobObject(
+ HANDLE JobHandle,
+ JOBOBJECTINFOCLASS JobInformationClass,
+ PVOID JobInformation,
+ ULONG JobInformationLength
+ );
+
+NTSTATUS
+STDCALL
+ZwSetInformationJobObject(
+ HANDLE JobHandle,
+ JOBOBJECTINFOCLASS JobInformationClass,
+ PVOID JobInformation,
+ ULONG JobInformationLength
+ );
/*
* FUNCTION: Changes a set of thread specific parameters
* ARGUMENTS:
STDCALL
NtSetIoCompletion(
IN HANDLE IoCompletionPortHandle,
- IN ULONG CompletionKey,
- IN ULONG CompletionValue,
+ IN PVOID CompletionKey,
+ IN PVOID CompletionContext,
IN NTSTATUS CompletionStatus,
IN ULONG CompletionInformation
);
STDCALL
ZwSetIoCompletion(
IN HANDLE IoCompletionPortHandle,
- IN ULONG CompletionKey,
- IN ULONG CompletionValue,
+ IN PVOID CompletionKey,
+ IN PVOID CompletionContext,
IN NTSTATUS CompletionStatus,
IN ULONG CompletionInformation
);
VOID
);
+NTSTATUS
+STDCALL
+NtSetQuotaInformationFile(
+ HANDLE FileHandle,
+ PIO_STATUS_BLOCK IoStatusBlock,
+ PFILE_USER_QUOTA_INFORMATION Buffer,
+ ULONG BufferLength
+ );
+
+NTSTATUS
+STDCALL
+ZwSetQuotaInformationFile(
+ HANDLE FileHandle,
+ PIO_STATUS_BLOCK IoStatusBlock,
+ PFILE_USER_QUOTA_INFORMATION Buffer,
+ ULONG BufferLength
+ );
+
NTSTATUS
STDCALL
NtSetSecurityObject(
NTSTATUS
STDCALL
NtSetTimerResolution(
- IN ULONG RequestedResolution,
- IN BOOL SetOrUnset,
- OUT PULONG ActualResolution
+ IN ULONG DesiredResolution,
+ IN BOOLEAN SetResolution,
+ OUT PULONG CurrentResolution
);
NTSTATUS
STDCALL
ZwSetTimerResolution(
- IN ULONG RequestedResolution,
- IN BOOL SetOrUnset,
- OUT PULONG ActualResolution
+ IN ULONG DesiredResolution,
+ IN BOOLEAN SetResolution,
+ OUT PULONG CurrentResolution
);
/*
IN SHUTDOWN_ACTION Action
);
+/*
+ * FUNCTION: Signals an object and wait for an other one.
+ * ARGUMENTS:
+ * SignalObject = Handle to the object that should be signaled
+ * WaitObject = Handle to the object that should be waited for
+ * Alertable = True if the wait is alertable
+ * Time = The time to wait
+ * RETURNS: Status
+ */
+NTSTATUS
+STDCALL
+NtSignalAndWaitForSingleObject(
+ IN HANDLE SignalObject,
+ IN HANDLE WaitObject,
+ IN BOOLEAN Alertable,
+ IN PLARGE_INTEGER Time
+ );
-/* --- PROFILING --- */
+NTSTATUS
+STDCALL
+NtSignalAndWaitForSingleObject(
+ IN HANDLE SignalObject,
+ IN HANDLE WaitObject,
+ IN BOOLEAN Alertable,
+ IN PLARGE_INTEGER Time
+ );
/*
* FUNCTION: Starts profiling
- * ARGUMENTS:
+ * ARGUMENTS:
* ProfileHandle = Handle to the profile
* RETURNS: Status
*/
/*
* FUNCTION: Stops profiling
- * ARGUMENTS:
+ * ARGUMENTS:
* ProfileHandle = Handle to the profile
- * RETURNS: Status
+ * RETURNS: Status
*/
NTSTATUS
* ThreadHandle = Handle to the process
* ExitStatus = The exit status of the process to terminate with.
* REMARKS
- Native applications should kill themselves using this function.
+ * Native applications should kill themselves using this function.
* RETURNS: Status
- */
+ */
NTSTATUS
STDCALL
NtTerminateProcess(
- IN HANDLE ProcessHandle ,
+ IN HANDLE ProcessHandle OPTIONAL,
IN NTSTATUS ExitStatus
);
NTSTATUS
STDCALL
ZwTerminateProcess(
- IN HANDLE ProcessHandle ,
+ IN HANDLE ProcessHandle OPTIONAL,
IN NTSTATUS ExitStatus
);
-/* --- DEVICE DRIVER CONTROL --- */
+NTSTATUS
+STDCALL
+NtTerminateJobObject(
+ HANDLE JobHandle,
+ NTSTATUS ExitStatus
+ );
+
+NTSTATUS
+STDCALL
+ZwTerminateJobObject(
+ HANDLE JobHandle,
+ NTSTATUS ExitStatus
+ );
+
+NTSTATUS
+STDCALL
+NtTraceEvent(
+ IN ULONG TraceHandle,
+ IN ULONG Flags,
+ IN ULONG TraceHeaderLength,
+ IN struct _EVENT_TRACE_HEADER* TraceHeader
+ );
+
+NTSTATUS
+STDCALL
+ZwTraceEvent(
+ IN ULONG TraceHandle,
+ IN ULONG Flags,
+ IN ULONG TraceHeaderLength,
+ IN struct _EVENT_TRACE_HEADER* TraceHeader
+ );
+
+NTSTATUS
+STDCALL
+NtTranslateFilePath(
+ ULONG Unknown1,
+ ULONG Unknown2,
+ ULONG Unknown3
+ );
+
+NTSTATUS
+STDCALL
+ZwTranslateFilePath(
+ ULONG Unknown1,
+ ULONG Unknown2,
+ ULONG Unknown3
+ );
/*
- * FUNCTION: Unloads a driver.
+ * FUNCTION: Unloads a driver.
* ARGUMENTS:
* DriverServiceName = Name of the driver to unload
* RETURNS: Status
IN PUNICODE_STRING DriverServiceName
);
-/* --- VIRTUAL MEMORY MANAGEMENT --- */
+/*
+ * FUNCTION: Unmaps a piece of virtual memory backed by a file.
+ * ARGUMENTS:
+ * ProcessHandle = Handle to the process
+ * BaseAddress = The address where the mapping begins
+ * REMARK:
+ This procedure maps to the win32 UnMapViewOfFile
+ * RETURNS: Status
+ */
+NTSTATUS
+STDCALL
+NtUnmapViewOfSection(
+ IN HANDLE ProcessHandle,
+ IN PVOID BaseAddress
+ );
+NTSTATUS
+STDCALL
+ZwUnmapViewOfSection(
+ IN HANDLE ProcessHandle,
+ IN PVOID BaseAddress
+ );
+
+
+NTSTATUS STDCALL
+NtWriteRequestData (HANDLE PortHandle,
+ PLPC_MESSAGE Message,
+ ULONG Index,
+ PVOID Buffer,
+ ULONG BufferLength,
+ PULONG ReturnLength);
+
+NTSTATUS STDCALL
+ZwWriteRequestData (HANDLE PortHandle,
+ PLPC_MESSAGE Message,
+ ULONG Index,
+ PVOID Buffer,
+ ULONG BufferLength,
+ PULONG ReturnLength);
+
/*
* FUNCTION: Writes a range of virtual memory
OUT PULONG NumberOfBytesWritten
);
-/*
- * FUNCTION: Unmaps a piece of virtual memory backed by a file.
- * ARGUMENTS:
- * ProcessHandle = Handle to the process
- * BaseAddress = The address where the mapping begins
- * REMARK:
- This procedure maps to the win32 UnMapViewOfFile
- * RETURNS: Status
- */
-NTSTATUS
-STDCALL
-NtUnmapViewOfSection(
- IN HANDLE ProcessHandle,
- IN PVOID BaseAddress
- );
-NTSTATUS
-STDCALL
-ZwUnmapViewOfSection(
- IN HANDLE ProcessHandle,
- IN PVOID BaseAddress
- );
-
-/* --- OBJECT SYNCHRONIZATION --- */
-
-/*
- * FUNCTION: Signals an object and wait for an other one.
- * ARGUMENTS:
- * SignalObject = Handle to the object that should be signaled
- * WaitObject = Handle to the object that should be waited for
- * Alertable = True if the wait is alertable
- * Time = The time to wait
- * RETURNS: Status
- */
-NTSTATUS
-STDCALL
-NtSignalAndWaitForSingleObject(
- IN HANDLE SignalObject,
- IN HANDLE WaitObject,
- IN BOOLEAN Alertable,
- IN PLARGE_INTEGER Time
- );
-
-NTSTATUS
-STDCALL
-NtSignalAndWaitForSingleObject(
- IN HANDLE SignalObject,
- IN HANDLE WaitObject,
- IN BOOLEAN Alertable,
- IN PLARGE_INTEGER Time
- );
/*
* FUNCTION: Waits for an object to become signalled.
STDCALL
NtSuspendThread(
IN HANDLE ThreadHandle,
- IN PULONG PreviousSuspendCount
+ OUT PULONG PreviousSuspendCount OPTIONAL
);
NTSTATUS
STDCALL
ZwSuspendThread(
IN HANDLE ThreadHandle,
- IN PULONG PreviousSuspendCount
+ OUT PULONG PreviousSuspendCount OPTIONAL
);
/*
VOID
);
-/* --- PLUG AND PLAY --- */
-
-NTSTATUS
-STDCALL
-NtPlugPlayControl (DWORD Unknown1,
- DWORD Unknown2,
- DWORD Unknown3);
-
-NTSTATUS
-STDCALL
-NtGetPlugPlayEvent (ULONG Reserved1,
- ULONG Reserved2,
- PVOID Buffer,
- ULONG BufferLength);
-
/* --- POWER MANAGEMENT --- */
+#ifndef __USE_W32API
NTSTATUS STDCALL
NtSetSystemPowerState(IN POWER_ACTION SystemAction,
IN SYSTEM_POWER_STATE MinSystemState,
IN ULONG Flags);
+#endif
/* --- DEBUG SUBSYSTEM --- */
ULONG Selector2,
LDT_ENTRY LdtEntry2);
-NTSTATUS
-STDCALL
-NtQueryOleDirectoryFile (
- VOID
- );
-
/*
* FUNCTION: Checks a clients access rights to a object
* ARGUMENTS:
* ReturnLength = Bytes written
* GrantedAccess =
* AccessStatus = Indicates if the ClientToken allows the requested access
- * REMARKS: The arguments map to the win32 AccessCheck
+ * REMARKS: The arguments map to the win32 AccessCheck
+ * Gary Nebbett is wrong:
+ * The 7th argument is a PACCESS_MASK, not a PULONG.
+ * The 8th argument is a PNTSTATUS, not a PBOOLEAN.
* RETURNS: Status
*/
IN PGENERIC_MAPPING GenericMapping,
OUT PPRIVILEGE_SET PrivilegeSet,
OUT PULONG ReturnLength,
- OUT PULONG GrantedAccess,
- OUT PBOOLEAN AccessStatus
+ OUT PACCESS_MASK GrantedAccess,
+ OUT PNTSTATUS AccessStatus
);
NTSTATUS
IN PGENERIC_MAPPING GenericMapping,
OUT PPRIVILEGE_SET PrivilegeSet,
OUT PULONG ReturnLength,
- OUT PULONG GrantedAccess,
- OUT PBOOLEAN AccessStatus
+ OUT PACCESS_MASK GrantedAccess,
+ OUT PNTSTATUS AccessStatus
);
NTSTATUS
NTSTATUS
STDCALL
NtCreateProfile(OUT PHANDLE ProfileHandle,
- IN HANDLE ProcessHandle,
+ IN HANDLE Process OPTIONAL,
IN PVOID ImageBase,
IN ULONG ImageSize,
- IN ULONG Granularity,
- OUT PULONG Buffer,
- IN ULONG ProfilingSize,
- IN KPROFILE_SOURCE Source,
- IN ULONG ProcessorMask);
+ IN ULONG BucketSize,
+ IN PVOID Buffer,
+ IN ULONG BufferSize,
+ IN KPROFILE_SOURCE ProfileSource,
+ IN KAFFINITY Affinity);
/*
* FUNCTION: Creates a user mode thread
IN HANDLE ProcessHandle,
OUT PCLIENT_ID ClientId,
IN PCONTEXT ThreadContext,
- IN PUSER_STACK UserStack,
+ IN PINITIAL_TEB InitialTeb,
IN BOOLEAN CreateSuspended
);
NTSTATUS
STDCALL
NtDelayExecution(
- IN ULONG Alertable,
- IN TIME *Interval
+ IN BOOLEAN Alertable,
+ IN PLARGE_INTEGER DelayInterval
);
/*
STDCALL
NtExtendSection(
IN HANDLE SectionHandle,
- IN ULONG NewMaximumSize
+ IN PLARGE_INTEGER NewMaximumSize
);
/*
* UpTime = Number of clock ticks since boot.
* RETURNS: Status
*/
-NTSTATUS
+ULONG
STDCALL
NtGetTickCount(
- PULONG UpTime
+ VOID
);
/*
STDCALL
NtProtectVirtualMemory(
IN HANDLE ProcessHandle,
- IN PVOID BaseAddress,
- IN ULONG NumberOfBytesToProtect,
+ IN PVOID *BaseAddress,
+ IN ULONG *NumberOfBytesToProtect,
IN ULONG NewAccessProtection,
OUT PULONG OldAccessProtection
);
NTSTATUS
STDCALL
NtQueryIntervalProfile(
- OUT PULONG Interval,
- OUT KPROFILE_SOURCE ClockSource
+ IN KPROFILE_SOURCE ProfileSource,
+ OUT PULONG Interval
);
/*
NtSetTimer(
IN HANDLE TimerHandle,
IN PLARGE_INTEGER DueTime,
- IN PTIMERAPCROUTINE TimerApcRoutine,
- IN PVOID TimerContext,
- IN BOOL WakeTimer,
- IN ULONG Period OPTIONAL,
- OUT PBOOLEAN PreviousState OPTIONAL
+ IN PTIMER_APC_ROUTINE TimerApcRoutine OPTIONAL,
+ IN PVOID TimerContext OPTIONAL,
+ IN BOOLEAN ResumeTimer,
+ IN LONG Period OPTIONAL,
+ OUT PBOOLEAN PreviousState OPTIONAL
);
/*
/*
* FUNCTION: Adds an atom to the global atom table
* ARGUMENTS:
- * AtomString = The string to add to the atom table.
- * Atom (OUT) = Caller supplies storage for the resulting atom.
+ * AtomName = The string to add to the atom table.
+ * AtomNameLength = Length of the atom name
+ * Atom (OUT) = Caller supplies storage for the resulting atom.
* REMARKS: The arguments map to the win32 add GlobalAddAtom.
* RETURNS: Status
*/
STDCALL
NtAddAtom(
IN PWSTR AtomName,
+ IN ULONG AtomNameLength,
IN OUT PRTL_ATOM Atom
);
STDCALL
ZwAddAtom(
IN PWSTR AtomName,
+ IN ULONG AtomNameLength,
IN OUT PRTL_ATOM Atom
);
NTSTATUS
STDCALL
NtAllocateUuids(
- PULARGE_INTEGER Time,
- PULONG Range,
- PULONG Sequence
+ OUT PULARGE_INTEGER Time,
+ OUT PULONG Range,
+ OUT PULONG Sequence,
+ OUT PUCHAR Seed
);
NTSTATUS
STDCALL
ZwAllocateUuids(
- PULARGE_INTEGER Time,
- PULONG Range,
- PULONG Sequence
+ OUT PULARGE_INTEGER Time,
+ OUT PULONG Range,
+ OUT PULONG Sequence,
+ OUT PUCHAR Seed
);
NTSTATUS
IN HANDLE ProcessHandle,
OUT PCLIENT_ID ClientId,
IN PCONTEXT ThreadContext,
- IN PUSER_STACK UserStack,
+ IN PINITIAL_TEB InitialTeb,
IN BOOLEAN CreateSuspended
);
NtDuplicateToken(
IN HANDLE ExistingToken,
IN ACCESS_MASK DesiredAccess,
- IN POBJECT_ATTRIBUTES ObjectAttributes,
- IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
+ IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
+ IN BOOLEAN EffectiveOnly,
IN TOKEN_TYPE TokenType,
OUT PHANDLE NewToken
);
ZwDuplicateToken(
IN HANDLE ExistingToken,
IN ACCESS_MASK DesiredAccess,
- IN POBJECT_ATTRIBUTES ObjectAttributes,
- IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
+ IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
+ IN BOOLEAN EffectiveOnly,
IN TOKEN_TYPE TokenType,
OUT PHANDLE NewToken
);
* FUNCTION: Finds a atom
* ARGUMENTS:
* AtomName = Name to search for.
+ * AtomNameLength = Length of the atom name
* Atom = Caller supplies storage for the resulting atom
* RETURNS: Status
* REMARKS:
STDCALL
NtFindAtom(
IN PWSTR AtomName,
+ IN ULONG AtomNameLength,
OUT PRTL_ATOM Atom OPTIONAL
);
STDCALL
ZwFindAtom(
IN PWSTR AtomName,
+ IN ULONG AtomNameLength,
OUT PRTL_ATOM Atom OPTIONAL
);
* UpTime = Number of clock ticks since boot.
* RETURNS: Status
*/
-NTSTATUS
-STDCALL
+ULONG
+STDCALL
ZwGetTickCount(
- PULONG UpTime
+ VOID
);
/*
STDCALL
ZwProtectVirtualMemory(
IN HANDLE ProcessHandle,
- IN PVOID BaseAddress,
- IN ULONG NumberOfBytesToProtect,
+ IN PVOID *BaseAddress,
+ IN ULONG *NumberOfBytesToProtect,
IN ULONG NewAccessProtection,
OUT PULONG OldAccessProtection
);
STDCALL
NtQueryInformationProcess(
IN HANDLE ProcessHandle,
- IN CINT ProcessInformationClass,
+ IN PROCESSINFOCLASS ProcessInformationClass,
OUT PVOID ProcessInformation,
IN ULONG ProcessInformationLength,
- OUT PULONG ReturnLength
+ OUT PULONG ReturnLength OPTIONAL
);
NTSTATUS
STDCALL
ZwQueryInformationProcess(
IN HANDLE ProcessHandle,
- IN CINT ProcessInformationClass,
+ IN PROCESSINFOCLASS ProcessInformationClass,
OUT PVOID ProcessInformation,
IN ULONG ProcessInformationLength,
- OUT PULONG ReturnLength
+ OUT PULONG ReturnLength OPTIONAL
);
/*
NTSTATUS
STDCALL
ZwQueryIntervalProfile(
- OUT PULONG Interval,
- OUT KPROFILE_SOURCE ClockSource
+ IN KPROFILE_SOURCE ProfileSource,
+ OUT PULONG Interval
);
/*
IN OBJECT_INFORMATION_CLASS ObjectInformationClass,
OUT PVOID ObjectInformation,
IN ULONG Length,
- OUT PULONG ResultLength OPTIONAL
+ OUT PULONG ResultLength OPTIONAL
);
NTSTATUS
STDCALL
NtSetInformationProcess(
IN HANDLE ProcessHandle,
- IN CINT ProcessInformationClass,
+ IN PROCESSINFOCLASS ProcessInformationClass,
IN PVOID ProcessInformation,
IN ULONG ProcessInformationLength
);
STDCALL
ZwSetInformationProcess(
IN HANDLE ProcessHandle,
- IN CINT ProcessInformationClass,
+ IN PROCESSINFOCLASS ProcessInformationClass,
IN PVOID ProcessInformation,
IN ULONG ProcessInformationLength
);
ZwSetTimer(
IN HANDLE TimerHandle,
IN PLARGE_INTEGER DueTime,
- IN PTIMERAPCROUTINE TimerApcRoutine,
- IN PVOID TimerContext,
- IN BOOL WakeTimer,
- IN ULONG Period OPTIONAL,
- OUT PBOOLEAN PreviousState OPTIONAL
+ IN PTIMER_APC_ROUTINE TimerApcRoutine OPTIONAL,
+ IN PVOID TimerContext OPTIONAL,
+ IN BOOLEAN ResumeTimer,
+ IN LONG Period OPTIONAL,
+ OUT PBOOLEAN PreviousState OPTIONAL
);
+NTSTATUS STDCALL
+NtSetUuidSeed(IN PUCHAR Seed);
+
+NTSTATUS STDCALL
+ZwSetUuidSeed(IN PUCHAR Seed);
+
/*
* FUNCTION: Unloads a registry key.
* ARGUMENTS:
NTSTATUS
STDCALL
ZwCreateProfile(
- OUT PHANDLE ProfileHandle,
- IN POBJECT_ATTRIBUTES ObjectAttributes,
- IN ULONG ImageBase,
- IN ULONG ImageSize,
- IN ULONG Granularity,
- OUT PVOID Buffer,
- IN ULONG ProfilingSize,
- IN ULONG ClockSource,
- IN ULONG ProcessorMask
+ OUT PHANDLE ProfileHandle,
+ IN HANDLE Process OPTIONAL,
+ IN PVOID ImageBase,
+ IN ULONG ImageSize,
+ IN ULONG BucketSize,
+ IN PVOID Buffer,
+ IN ULONG BufferSize,
+ IN KPROFILE_SOURCE ProfileSource,
+ IN KAFFINITY Affinity
);
/*
STDCALL
ZwDelayExecution(
IN BOOLEAN Alertable,
- IN TIME *Interval
+ IN PLARGE_INTEGER DelayInterval
);
/*
STDCALL
ZwExtendSection(
IN HANDLE SectionHandle,
- IN ULONG NewMaximumSize
+ IN PLARGE_INTEGER NewMaximumSize
);
/*
typedef struct _SECTION_IMAGE_INFORMATION
{
- PVOID EntryPoint;
+ ULONG_PTR EntryPoint;
ULONG Unknown1;
- ULONG StackReserve;
- ULONG StackCommit;
+ ULONG_PTR StackReserve;
+ ULONG_PTR StackCommit;
ULONG Subsystem;
USHORT MinorSubsystemVersion;
USHORT MajorSubsystemVersion;
IN OBJECT_INFORMATION_CLASS ObjectInformationClass,
OUT PVOID ObjectInformation,
IN ULONG Length,
- OUT PULONG ResultLength OPTIONAL
+ OUT PULONG ResultLength OPTIONAL
);
/* BEGIN REACTOS ONLY */