- SVN maintenance (set eol-style to native)

svn path=/trunk/; revision=21808
This commit is contained in:
Aleksey Bragin
2006-05-05 18:13:26 +00:00
parent b78cdcabbd
commit 42657b29da
9 changed files with 2947 additions and 2947 deletions
+484 -484
View File
@@ -1,484 +1,484 @@
/*++ NDK Version: 0095
Copyright (c) Alex Ionescu. All rights reserved.
Header Name:
cmfuncs.h
Abstract:
Function definitions for the Configuration Manager.
Author:
Alex Ionescu ([email protected]) 06-Oct-2004
--*/
#ifndef _CMFUNCS_H
#define _CMFUNCS_H
//
// Dependencies
//
#include <umtypes.h>
//
// Native calls
//
NTSYSCALLAPI
NTSTATUS
NTAPI
NtCreateKey(
OUT PHANDLE KeyHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN ULONG TitleIndex,
IN PUNICODE_STRING Class OPTIONAL,
IN ULONG CreateOptions,
IN PULONG Disposition OPTIONAL
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtDeleteKey(
IN HANDLE KeyHandle
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtDeleteValueKey(
IN HANDLE KeyHandle,
IN PUNICODE_STRING ValueName
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtEnumerateKey(
IN HANDLE KeyHandle,
IN ULONG Index,
IN KEY_INFORMATION_CLASS KeyInformationClass,
OUT PVOID KeyInformation,
IN ULONG Length,
OUT PULONG ResultLength
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtEnumerateValueKey(
IN HANDLE KeyHandle,
IN ULONG Index,
IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
OUT PVOID KeyValueInformation,
IN ULONG Length,
OUT PULONG ResultLength
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtFlushKey(
IN HANDLE KeyHandle
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtGetPlugPlayEvent(
IN ULONG Reserved1,
IN ULONG Reserved2,
OUT PPLUGPLAY_EVENT_BLOCK Buffer,
IN ULONG BufferSize
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtInitializeRegistry(
BOOLEAN SetUpBoot
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtLoadKey(
IN POBJECT_ATTRIBUTES KeyObjectAttributes,
IN POBJECT_ATTRIBUTES FileObjectAttributes
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtLoadKey2(
IN POBJECT_ATTRIBUTES KeyObjectAttributes,
IN POBJECT_ATTRIBUTES FileObjectAttributes,
IN ULONG Flags
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtNotifyChangeKey(
IN HANDLE KeyHandle,
IN HANDLE Event,
IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
IN PVOID ApcContext OPTIONAL,
OUT PIO_STATUS_BLOCK IoStatusBlock,
IN ULONG CompletionFilter,
IN BOOLEAN Asynchroneous,
OUT PVOID ChangeBuffer,
IN ULONG Length,
IN BOOLEAN WatchSubtree
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtOpenKey(
OUT PHANDLE KeyHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtPlugPlayControl(
IN PLUGPLAY_CONTROL_CLASS PlugPlayControlClass,
IN OUT PVOID Buffer,
IN ULONG BufferSize
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtQueryKey(
IN HANDLE KeyHandle,
IN KEY_INFORMATION_CLASS KeyInformationClass,
OUT PVOID KeyInformation,
IN ULONG Length,
OUT PULONG ResultLength
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtQueryMultipleValueKey(
IN HANDLE KeyHandle,
IN OUT PKEY_VALUE_ENTRY ValueList,
IN ULONG NumberOfValues,
OUT PVOID Buffer,
IN OUT PULONG Length,
OUT PULONG ReturnLength
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtQueryValueKey(
IN HANDLE KeyHandle,
IN PUNICODE_STRING ValueName,
IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
OUT PVOID KeyValueInformation,
IN ULONG Length,
OUT PULONG ResultLength
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtReplaceKey(
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN HANDLE Key,
IN POBJECT_ATTRIBUTES ReplacedObjectAttributes
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtRestoreKey(
IN HANDLE KeyHandle,
IN HANDLE FileHandle,
IN ULONG RestoreFlags
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtSaveKey(
IN HANDLE KeyHandle,
IN HANDLE FileHandle
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtSaveKeyEx(
IN HANDLE KeyHandle,
IN HANDLE FileHandle,
IN ULONG Flags
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtSetInformationKey(
IN HANDLE KeyHandle,
IN KEY_SET_INFORMATION_CLASS KeyInformationClass,
IN PVOID KeyInformation,
IN ULONG KeyInformationLength
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtSetValueKey(
IN HANDLE KeyHandle,
IN PUNICODE_STRING ValueName,
IN ULONG TitleIndex OPTIONAL,
IN ULONG Type,
IN PVOID Data,
IN ULONG DataSize
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtUnloadKey(
IN POBJECT_ATTRIBUTES KeyObjectAttributes
);
#ifdef NTOS_MODE_USER
NTSYSAPI
NTSTATUS
NTAPI
ZwCreateKey(
OUT PHANDLE KeyHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN ULONG TitleIndex,
IN PUNICODE_STRING Class OPTIONAL,
IN ULONG CreateOptions,
IN PULONG Disposition OPTIONAL
);
NTSYSAPI
NTSTATUS
NTAPI
ZwDeleteKey(
IN HANDLE KeyHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwDeleteValueKey(
IN HANDLE KeyHandle,
IN PUNICODE_STRING ValueName
);
NTSYSAPI
NTSTATUS
NTAPI
ZwEnumerateKey(
IN HANDLE KeyHandle,
IN ULONG Index,
IN KEY_INFORMATION_CLASS KeyInformationClass,
OUT PVOID KeyInformation,
IN ULONG Length,
OUT PULONG ResultLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwEnumerateValueKey(
IN HANDLE KeyHandle,
IN ULONG Index,
IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
OUT PVOID KeyValueInformation,
IN ULONG Length,
OUT PULONG ResultLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwFlushKey(
IN HANDLE KeyHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwGetPlugPlayEvent(
IN ULONG Reserved1,
IN ULONG Reserved2,
OUT PPLUGPLAY_EVENT_BLOCK Buffer,
IN ULONG BufferSize
);
NTSYSAPI
NTSTATUS
NTAPI
ZwInitializeRegistry(
BOOLEAN SetUpBoot
);
NTSYSAPI
NTSTATUS
NTAPI
ZwLoadKey(
IN POBJECT_ATTRIBUTES KeyObjectAttributes,
IN POBJECT_ATTRIBUTES FileObjectAttributes
);
NTSYSAPI
NTSTATUS
NTAPI
ZwLoadKey2(
IN POBJECT_ATTRIBUTES KeyObjectAttributes,
IN POBJECT_ATTRIBUTES FileObjectAttributes,
IN ULONG Flags
);
NTSYSAPI
NTSTATUS
NTAPI
ZwNotifyChangeKey(
IN HANDLE KeyHandle,
IN HANDLE Event,
IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
IN PVOID ApcContext OPTIONAL,
OUT PIO_STATUS_BLOCK IoStatusBlock,
IN ULONG CompletionFilter,
IN BOOLEAN Asynchroneous,
OUT PVOID ChangeBuffer,
IN ULONG Length,
IN BOOLEAN WatchSubtree
);
NTSYSAPI
NTSTATUS
NTAPI
ZwOpenKey(
OUT PHANDLE KeyHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes
);
NTSYSAPI
NTSTATUS
NTAPI
ZwPlugPlayControl(
IN PLUGPLAY_CONTROL_CLASS PlugPlayControlClass,
IN OUT PVOID Buffer,
IN ULONG BufferSize
);
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryKey(
IN HANDLE KeyHandle,
IN KEY_INFORMATION_CLASS KeyInformationClass,
OUT PVOID KeyInformation,
IN ULONG Length,
OUT PULONG ResultLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryMultipleValueKey(
IN HANDLE KeyHandle,
IN OUT PKEY_VALUE_ENTRY ValueList,
IN ULONG NumberOfValues,
OUT PVOID Buffer,
IN OUT PULONG Length,
OUT PULONG ReturnLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryValueKey(
IN HANDLE KeyHandle,
IN PUNICODE_STRING ValueName,
IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
OUT PVOID KeyValueInformation,
IN ULONG Length,
OUT PULONG ResultLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwReplaceKey(
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN HANDLE Key,
IN POBJECT_ATTRIBUTES ReplacedObjectAttributes
);
NTSYSAPI
NTSTATUS
NTAPI
ZwRestoreKey(
IN HANDLE KeyHandle,
IN HANDLE FileHandle,
IN ULONG RestoreFlags
);
NTSYSAPI
NTSTATUS
NTAPI
ZwSaveKey(
IN HANDLE KeyHandle,
IN HANDLE FileHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwSaveKeyEx(
IN HANDLE KeyHandle,
IN HANDLE FileHandle,
IN ULONG Flags
);
NTSYSAPI
NTSTATUS
NTAPI
ZwSetInformationKey(
IN HANDLE KeyHandle,
IN KEY_SET_INFORMATION_CLASS KeyInformationClass,
IN PVOID KeyInformation,
IN ULONG KeyInformationLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwSetValueKey(
IN HANDLE KeyHandle,
IN PUNICODE_STRING ValueName,
IN ULONG TitleIndex OPTIONAL,
IN ULONG Type,
IN PVOID Data,
IN ULONG DataSize
);
#endif
NTSYSAPI
NTSTATUS
NTAPI
ZwUnloadKey(
IN POBJECT_ATTRIBUTES KeyObjectAttributes
);
#endif
/*++ NDK Version: 0095
Copyright (c) Alex Ionescu. All rights reserved.
Header Name:
cmfuncs.h
Abstract:
Function definitions for the Configuration Manager.
Author:
Alex Ionescu ([email protected]) 06-Oct-2004
--*/
#ifndef _CMFUNCS_H
#define _CMFUNCS_H
//
// Dependencies
//
#include <umtypes.h>
//
// Native calls
//
NTSYSCALLAPI
NTSTATUS
NTAPI
NtCreateKey(
OUT PHANDLE KeyHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN ULONG TitleIndex,
IN PUNICODE_STRING Class OPTIONAL,
IN ULONG CreateOptions,
IN PULONG Disposition OPTIONAL
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtDeleteKey(
IN HANDLE KeyHandle
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtDeleteValueKey(
IN HANDLE KeyHandle,
IN PUNICODE_STRING ValueName
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtEnumerateKey(
IN HANDLE KeyHandle,
IN ULONG Index,
IN KEY_INFORMATION_CLASS KeyInformationClass,
OUT PVOID KeyInformation,
IN ULONG Length,
OUT PULONG ResultLength
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtEnumerateValueKey(
IN HANDLE KeyHandle,
IN ULONG Index,
IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
OUT PVOID KeyValueInformation,
IN ULONG Length,
OUT PULONG ResultLength
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtFlushKey(
IN HANDLE KeyHandle
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtGetPlugPlayEvent(
IN ULONG Reserved1,
IN ULONG Reserved2,
OUT PPLUGPLAY_EVENT_BLOCK Buffer,
IN ULONG BufferSize
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtInitializeRegistry(
BOOLEAN SetUpBoot
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtLoadKey(
IN POBJECT_ATTRIBUTES KeyObjectAttributes,
IN POBJECT_ATTRIBUTES FileObjectAttributes
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtLoadKey2(
IN POBJECT_ATTRIBUTES KeyObjectAttributes,
IN POBJECT_ATTRIBUTES FileObjectAttributes,
IN ULONG Flags
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtNotifyChangeKey(
IN HANDLE KeyHandle,
IN HANDLE Event,
IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
IN PVOID ApcContext OPTIONAL,
OUT PIO_STATUS_BLOCK IoStatusBlock,
IN ULONG CompletionFilter,
IN BOOLEAN Asynchroneous,
OUT PVOID ChangeBuffer,
IN ULONG Length,
IN BOOLEAN WatchSubtree
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtOpenKey(
OUT PHANDLE KeyHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtPlugPlayControl(
IN PLUGPLAY_CONTROL_CLASS PlugPlayControlClass,
IN OUT PVOID Buffer,
IN ULONG BufferSize
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtQueryKey(
IN HANDLE KeyHandle,
IN KEY_INFORMATION_CLASS KeyInformationClass,
OUT PVOID KeyInformation,
IN ULONG Length,
OUT PULONG ResultLength
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtQueryMultipleValueKey(
IN HANDLE KeyHandle,
IN OUT PKEY_VALUE_ENTRY ValueList,
IN ULONG NumberOfValues,
OUT PVOID Buffer,
IN OUT PULONG Length,
OUT PULONG ReturnLength
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtQueryValueKey(
IN HANDLE KeyHandle,
IN PUNICODE_STRING ValueName,
IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
OUT PVOID KeyValueInformation,
IN ULONG Length,
OUT PULONG ResultLength
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtReplaceKey(
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN HANDLE Key,
IN POBJECT_ATTRIBUTES ReplacedObjectAttributes
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtRestoreKey(
IN HANDLE KeyHandle,
IN HANDLE FileHandle,
IN ULONG RestoreFlags
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtSaveKey(
IN HANDLE KeyHandle,
IN HANDLE FileHandle
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtSaveKeyEx(
IN HANDLE KeyHandle,
IN HANDLE FileHandle,
IN ULONG Flags
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtSetInformationKey(
IN HANDLE KeyHandle,
IN KEY_SET_INFORMATION_CLASS KeyInformationClass,
IN PVOID KeyInformation,
IN ULONG KeyInformationLength
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtSetValueKey(
IN HANDLE KeyHandle,
IN PUNICODE_STRING ValueName,
IN ULONG TitleIndex OPTIONAL,
IN ULONG Type,
IN PVOID Data,
IN ULONG DataSize
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtUnloadKey(
IN POBJECT_ATTRIBUTES KeyObjectAttributes
);
#ifdef NTOS_MODE_USER
NTSYSAPI
NTSTATUS
NTAPI
ZwCreateKey(
OUT PHANDLE KeyHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN ULONG TitleIndex,
IN PUNICODE_STRING Class OPTIONAL,
IN ULONG CreateOptions,
IN PULONG Disposition OPTIONAL
);
NTSYSAPI
NTSTATUS
NTAPI
ZwDeleteKey(
IN HANDLE KeyHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwDeleteValueKey(
IN HANDLE KeyHandle,
IN PUNICODE_STRING ValueName
);
NTSYSAPI
NTSTATUS
NTAPI
ZwEnumerateKey(
IN HANDLE KeyHandle,
IN ULONG Index,
IN KEY_INFORMATION_CLASS KeyInformationClass,
OUT PVOID KeyInformation,
IN ULONG Length,
OUT PULONG ResultLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwEnumerateValueKey(
IN HANDLE KeyHandle,
IN ULONG Index,
IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
OUT PVOID KeyValueInformation,
IN ULONG Length,
OUT PULONG ResultLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwFlushKey(
IN HANDLE KeyHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwGetPlugPlayEvent(
IN ULONG Reserved1,
IN ULONG Reserved2,
OUT PPLUGPLAY_EVENT_BLOCK Buffer,
IN ULONG BufferSize
);
NTSYSAPI
NTSTATUS
NTAPI
ZwInitializeRegistry(
BOOLEAN SetUpBoot
);
NTSYSAPI
NTSTATUS
NTAPI
ZwLoadKey(
IN POBJECT_ATTRIBUTES KeyObjectAttributes,
IN POBJECT_ATTRIBUTES FileObjectAttributes
);
NTSYSAPI
NTSTATUS
NTAPI
ZwLoadKey2(
IN POBJECT_ATTRIBUTES KeyObjectAttributes,
IN POBJECT_ATTRIBUTES FileObjectAttributes,
IN ULONG Flags
);
NTSYSAPI
NTSTATUS
NTAPI
ZwNotifyChangeKey(
IN HANDLE KeyHandle,
IN HANDLE Event,
IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
IN PVOID ApcContext OPTIONAL,
OUT PIO_STATUS_BLOCK IoStatusBlock,
IN ULONG CompletionFilter,
IN BOOLEAN Asynchroneous,
OUT PVOID ChangeBuffer,
IN ULONG Length,
IN BOOLEAN WatchSubtree
);
NTSYSAPI
NTSTATUS
NTAPI
ZwOpenKey(
OUT PHANDLE KeyHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes
);
NTSYSAPI
NTSTATUS
NTAPI
ZwPlugPlayControl(
IN PLUGPLAY_CONTROL_CLASS PlugPlayControlClass,
IN OUT PVOID Buffer,
IN ULONG BufferSize
);
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryKey(
IN HANDLE KeyHandle,
IN KEY_INFORMATION_CLASS KeyInformationClass,
OUT PVOID KeyInformation,
IN ULONG Length,
OUT PULONG ResultLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryMultipleValueKey(
IN HANDLE KeyHandle,
IN OUT PKEY_VALUE_ENTRY ValueList,
IN ULONG NumberOfValues,
OUT PVOID Buffer,
IN OUT PULONG Length,
OUT PULONG ReturnLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryValueKey(
IN HANDLE KeyHandle,
IN PUNICODE_STRING ValueName,
IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
OUT PVOID KeyValueInformation,
IN ULONG Length,
OUT PULONG ResultLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwReplaceKey(
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN HANDLE Key,
IN POBJECT_ATTRIBUTES ReplacedObjectAttributes
);
NTSYSAPI
NTSTATUS
NTAPI
ZwRestoreKey(
IN HANDLE KeyHandle,
IN HANDLE FileHandle,
IN ULONG RestoreFlags
);
NTSYSAPI
NTSTATUS
NTAPI
ZwSaveKey(
IN HANDLE KeyHandle,
IN HANDLE FileHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwSaveKeyEx(
IN HANDLE KeyHandle,
IN HANDLE FileHandle,
IN ULONG Flags
);
NTSYSAPI
NTSTATUS
NTAPI
ZwSetInformationKey(
IN HANDLE KeyHandle,
IN KEY_SET_INFORMATION_CLASS KeyInformationClass,
IN PVOID KeyInformation,
IN ULONG KeyInformationLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwSetValueKey(
IN HANDLE KeyHandle,
IN PUNICODE_STRING ValueName,
IN ULONG TitleIndex OPTIONAL,
IN ULONG Type,
IN PVOID Data,
IN ULONG DataSize
);
#endif
NTSYSAPI
NTSTATUS
NTAPI
ZwUnloadKey(
IN POBJECT_ATTRIBUTES KeyObjectAttributes
);
#endif
File diff suppressed because it is too large Load Diff
+87 -87
View File
@@ -1,87 +1,87 @@
/*++ NDK Version: 0095
Copyright (c) Alex Ionescu. All rights reserved.
Header Name:
dbgkfuncs.h
Abstract:
Function definitions for the User Mode Debugging Facility.
Author:
Alex Ionescu ([email protected]) 06-Oct-2004
--*/
#ifndef _DBGKFUNCS_H
#define _DBGKFUNCS_H
//
// Dependencies
//
#include <umtypes.h>
//
// Native calls
//
NTSYSCALLAPI
NTSTATUS
NTAPI
NtCreateDebugObject(
OUT PHANDLE DebugHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN BOOLEAN KillProcessOnExit
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtDebugContinue(
IN HANDLE DebugObject,
IN PCLIENT_ID AppClientId,
IN NTSTATUS ContinueStatus
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtWaitForDebugEvent(
IN HANDLE DebugObject,
IN BOOLEAN Alertable,
IN PLARGE_INTEGER Timeout OPTIONAL,
OUT PDBGUI_WAIT_STATE_CHANGE StateChange
);
NTSYSCALLAPI
NTSTATUS
NTAPI
ZwCreateDebugObject(
OUT PHANDLE DebugHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN BOOLEAN KillProcessOnExit
);
NTSYSCALLAPI
NTSTATUS
NTAPI
ZwDebugContinue(
IN HANDLE DebugObject,
IN PCLIENT_ID AppClientId,
IN NTSTATUS ContinueStatus
);
NTSYSCALLAPI
NTSTATUS
NTAPI
ZwWaitForDebugEvent(
IN HANDLE DebugObject,
IN BOOLEAN Alertable,
IN PLARGE_INTEGER Timeout OPTIONAL,
OUT PDBGUI_WAIT_STATE_CHANGE StateChange
);
#endif
/*++ NDK Version: 0095
Copyright (c) Alex Ionescu. All rights reserved.
Header Name:
dbgkfuncs.h
Abstract:
Function definitions for the User Mode Debugging Facility.
Author:
Alex Ionescu ([email protected]) 06-Oct-2004
--*/
#ifndef _DBGKFUNCS_H
#define _DBGKFUNCS_H
//
// Dependencies
//
#include <umtypes.h>
//
// Native calls
//
NTSYSCALLAPI
NTSTATUS
NTAPI
NtCreateDebugObject(
OUT PHANDLE DebugHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN BOOLEAN KillProcessOnExit
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtDebugContinue(
IN HANDLE DebugObject,
IN PCLIENT_ID AppClientId,
IN NTSTATUS ContinueStatus
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtWaitForDebugEvent(
IN HANDLE DebugObject,
IN BOOLEAN Alertable,
IN PLARGE_INTEGER Timeout OPTIONAL,
OUT PDBGUI_WAIT_STATE_CHANGE StateChange
);
NTSYSCALLAPI
NTSTATUS
NTAPI
ZwCreateDebugObject(
OUT PHANDLE DebugHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN BOOLEAN KillProcessOnExit
);
NTSYSCALLAPI
NTSTATUS
NTAPI
ZwDebugContinue(
IN HANDLE DebugObject,
IN PCLIENT_ID AppClientId,
IN NTSTATUS ContinueStatus
);
NTSYSCALLAPI
NTSTATUS
NTAPI
ZwWaitForDebugEvent(
IN HANDLE DebugObject,
IN BOOLEAN Alertable,
IN PLARGE_INTEGER Timeout OPTIONAL,
OUT PDBGUI_WAIT_STATE_CHANGE StateChange
);
#endif
File diff suppressed because it is too large Load Diff
+88 -88
View File
@@ -1,88 +1,88 @@
List of ReactOS Applications compiling with the NDK
(verify, fix, and optimize their usage)
--------------------------------------------------------------
apps\utils\ps\ps.c: #include <ndk/ntndk.h>
drivers\dd\blue\blue.c: #include <ndk/halfuncs.h>
drivers\dd\bootvid\bootvid.c: #include <ndk/ldrfuncs.h>
drivers\storage\diskdump\diskdump.c: #include <ndk/extypes.h>
drivers\storage\diskdump\diskdump.c: #include <ndk/rtlfuncs.h>
hal\hal\hal.c: #include <ndk/halfuncs.h>
hal\hal\hal.c: #include <ndk/kdfuncs.h>
lib\crt\except\unwind.c: #include <ndk/umtypes.h>
lib\crt\except\unwind.c: #include <ndk/extypes.h>
lib\crt\except\unwind.c: #include <ndk/rtlfuncs.h>
lib\dnsapi\dnsapi\stubs.c: #include <ndk/ntndk.h>
lib\epsapi\enum\drivers.c: #include <ndk/ntndk.h>
lib\epsapi\enum\modules.c: #include <ndk/ntndk.h>
lib\epsapi\enum\processes.c: #include <ndk/ntndk.h>
lib\lsasrv\lsaport.c: #include <ndk/ntndk.h>
lib\lsasrv\lsasrv.c: #include <ndk/ntndk.h>
lib\nt\entry_point.c: #include <ndk/ntndk.h>
lib\samlib\samlib.c: #include <ndk/ntndk.h>
lib\samsrv\samsrv.c: #include <ndk/ntndk.h>
lib\smdll\query.c: #include <ndk/ntndk.h>
lib\string\mbstowcs.c: #include <ndk/umtypes.h>
lib\string\mbstowcs.c: #include <ndk/rtlfuncs.h>
lib\string\sscanf.c: #include <ndk/umtypes.h>
lib\string\sscanf.c: #include <ndk/rtlfuncs.h>
lib\string\wcstombs.c: #include <ndk/umtypes.h>
lib\string\wcstombs.c: #include <ndk/rtlfuncs.h>
lib\syssetup\install.c: #include <ndk/ntndk.h>
lib\syssetup\logfile.c: #include <ndk/ntndk.h>
lib\wdmguid\wdmguid.c: #include <ndk/sysguid.h>
regtests\shared\regtests.c: #include <ndk/ntndk.h>
services\umpnpmgr\umpnpmgr.c: #include <ndk/ntndk.h>
subsys\ntvdm\ntvdm.c: #include <ndk/ntndk.h>
subsys\system\autochk\autochk.c: #include <ndk/ntndk.h>
subsys\system\lsass\lsass.c: #include <ndk/ntndk.h>
subsys\system\setup\setup.c: #include <ndk/ntndk.h>
subsys\system\sm\sm.c: #include <ndk/ntndk.h>
boot\freeldr\freeldr\include\freeldr.h: #include <ndk/ntndk.h>
drivers\fs\ms\msfs.h: #include <ndk/ntndk.h>
drivers\fs\np\npfs.h: #include <ndk/iotypes.h>
drivers\fs\vfat\vfat.h: #include <ndk/ntndk.h>
drivers\net\ndis\include\ndissys.h: #include <ndk/ntndk.h>
drivers\net\tcpip\include\precomp.h: #include <ndk/ntndk.h>
drivers\video\miniport\xboxvmp\xboxvmp.h: #include <ndk/ntndk.h>
drivers\video\videoprt\videoprt.h: #include <ndk/ntndk.h>
hal\halx86\include\hal.h: #include <ndk/ntndk.h>
include\drivers\diskdump\diskdump.h: #include <ndk/ntndk.h>
lib\advapi32\advapi32.h: #include <ndk/ntndk.h>
lib\crt\precomp.h: #include <ndk/ntndk.h>
lib\dbghelp\stackframe.h: #include <ndk/umtypes.h>
lib\dbghelp\stackframe.h: #include <ndk/extypes.h>
lib\dbghelp\stackframe.h: #include <ndk/rtlfuncs.h>
lib\dnsapi\dnsapi\precomp.h: #include <ndk/ntndk.h>
lib\fmifs\precomp.h: #include <ndk/ntndk.h>
lib\fslib\vfatlib\vfatlib.h: #include <ndk/ntndk.h>
lib\fslib\vfatxlib\vfatxlib.h: #include <ndk/ntndk.h>
lib\gdi32\include\precomp.h: #include <ndk/ntndk.h>
lib\imagehlp\precomp.h: #include <ndk/umtypes.h>
lib\imagehlp\precomp.h: #include <ndk/rtlfuncs.h>
lib\iphlpapi\iphlpapi_private.h: #include <ndk/ntndk.h>
lib\kernel32\k32.h: #include <ndk/ntndk.h>
lib\msafd\msafd.h: #include <ndk/ntndk.h>
lib\ntdll\inc\ntdll.h: #include <ndk/ntndk.h>
lib\opengl32\teb.h: #include <ndk/ntndk.h>
lib\psapi\precomp.h: #include <ndk/ntndk.h>
lib\rtl\rtl.h: #include <ndk/ntndk.h>
lib\secur32\precomp.h: #include <ndk/ntndk.h>
lib\setupapi\setupapi_private.h: #include <ndk/ntndk.h>
lib\smlib\precomp.h: #include <ndk/ntndk.h>
lib\user32\include\user32.h: #include <ndk/ntndk.h>
lib\userenv\precomp.h: #include <ndk/ntndk.h>
lib\wshirda\wshirda.h: #include <ndk/ntndk.h>
ntoskrnl\include\ntoskrnl.h: #include <ndk/ntndk.h>
ntoskrnl\include\internal\napi.h: #include <ndk/asm.h>
services\dhcp\include\rosdhcp.h: #include <ndk/ntndk.h>
services\eventlog\eventlog.h: #include <ndk/ntndk.h>
services\rpcss\rpcss.h: #include <ndk/ntndk.h>
subsys\csrss\csrss.h: #include <ndk/ntndk.h>
subsys\csrss\include\api.h: #include <ndk/ntndk.h>
subsys\csrss\win32csr\w32csr.h: #include <ndk/ntndk.h>
subsys\smss\smss.h: #include <ndk/ntndk.h>
subsys\system\cmd\precomp.h: #include <ndk/ntndk.h>
subsys\system\services\services.h: #include <ndk/ntndk.h>
subsys\system\taskmgr\precomp.h: #include <ndk/ntndk.h>
subsys\system\usetup\usetup.h: #include <ndk/ntndk.h>
List of ReactOS Applications compiling with the NDK
(verify, fix, and optimize their usage)
--------------------------------------------------------------
apps\utils\ps\ps.c: #include <ndk/ntndk.h>
drivers\dd\blue\blue.c: #include <ndk/halfuncs.h>
drivers\dd\bootvid\bootvid.c: #include <ndk/ldrfuncs.h>
drivers\storage\diskdump\diskdump.c: #include <ndk/extypes.h>
drivers\storage\diskdump\diskdump.c: #include <ndk/rtlfuncs.h>
hal\hal\hal.c: #include <ndk/halfuncs.h>
hal\hal\hal.c: #include <ndk/kdfuncs.h>
lib\crt\except\unwind.c: #include <ndk/umtypes.h>
lib\crt\except\unwind.c: #include <ndk/extypes.h>
lib\crt\except\unwind.c: #include <ndk/rtlfuncs.h>
lib\dnsapi\dnsapi\stubs.c: #include <ndk/ntndk.h>
lib\epsapi\enum\drivers.c: #include <ndk/ntndk.h>
lib\epsapi\enum\modules.c: #include <ndk/ntndk.h>
lib\epsapi\enum\processes.c: #include <ndk/ntndk.h>
lib\lsasrv\lsaport.c: #include <ndk/ntndk.h>
lib\lsasrv\lsasrv.c: #include <ndk/ntndk.h>
lib\nt\entry_point.c: #include <ndk/ntndk.h>
lib\samlib\samlib.c: #include <ndk/ntndk.h>
lib\samsrv\samsrv.c: #include <ndk/ntndk.h>
lib\smdll\query.c: #include <ndk/ntndk.h>
lib\string\mbstowcs.c: #include <ndk/umtypes.h>
lib\string\mbstowcs.c: #include <ndk/rtlfuncs.h>
lib\string\sscanf.c: #include <ndk/umtypes.h>
lib\string\sscanf.c: #include <ndk/rtlfuncs.h>
lib\string\wcstombs.c: #include <ndk/umtypes.h>
lib\string\wcstombs.c: #include <ndk/rtlfuncs.h>
lib\syssetup\install.c: #include <ndk/ntndk.h>
lib\syssetup\logfile.c: #include <ndk/ntndk.h>
lib\wdmguid\wdmguid.c: #include <ndk/sysguid.h>
regtests\shared\regtests.c: #include <ndk/ntndk.h>
services\umpnpmgr\umpnpmgr.c: #include <ndk/ntndk.h>
subsys\ntvdm\ntvdm.c: #include <ndk/ntndk.h>
subsys\system\autochk\autochk.c: #include <ndk/ntndk.h>
subsys\system\lsass\lsass.c: #include <ndk/ntndk.h>
subsys\system\setup\setup.c: #include <ndk/ntndk.h>
subsys\system\sm\sm.c: #include <ndk/ntndk.h>
boot\freeldr\freeldr\include\freeldr.h: #include <ndk/ntndk.h>
drivers\fs\ms\msfs.h: #include <ndk/ntndk.h>
drivers\fs\np\npfs.h: #include <ndk/iotypes.h>
drivers\fs\vfat\vfat.h: #include <ndk/ntndk.h>
drivers\net\ndis\include\ndissys.h: #include <ndk/ntndk.h>
drivers\net\tcpip\include\precomp.h: #include <ndk/ntndk.h>
drivers\video\miniport\xboxvmp\xboxvmp.h: #include <ndk/ntndk.h>
drivers\video\videoprt\videoprt.h: #include <ndk/ntndk.h>
hal\halx86\include\hal.h: #include <ndk/ntndk.h>
include\drivers\diskdump\diskdump.h: #include <ndk/ntndk.h>
lib\advapi32\advapi32.h: #include <ndk/ntndk.h>
lib\crt\precomp.h: #include <ndk/ntndk.h>
lib\dbghelp\stackframe.h: #include <ndk/umtypes.h>
lib\dbghelp\stackframe.h: #include <ndk/extypes.h>
lib\dbghelp\stackframe.h: #include <ndk/rtlfuncs.h>
lib\dnsapi\dnsapi\precomp.h: #include <ndk/ntndk.h>
lib\fmifs\precomp.h: #include <ndk/ntndk.h>
lib\fslib\vfatlib\vfatlib.h: #include <ndk/ntndk.h>
lib\fslib\vfatxlib\vfatxlib.h: #include <ndk/ntndk.h>
lib\gdi32\include\precomp.h: #include <ndk/ntndk.h>
lib\imagehlp\precomp.h: #include <ndk/umtypes.h>
lib\imagehlp\precomp.h: #include <ndk/rtlfuncs.h>
lib\iphlpapi\iphlpapi_private.h: #include <ndk/ntndk.h>
lib\kernel32\k32.h: #include <ndk/ntndk.h>
lib\msafd\msafd.h: #include <ndk/ntndk.h>
lib\ntdll\inc\ntdll.h: #include <ndk/ntndk.h>
lib\opengl32\teb.h: #include <ndk/ntndk.h>
lib\psapi\precomp.h: #include <ndk/ntndk.h>
lib\rtl\rtl.h: #include <ndk/ntndk.h>
lib\secur32\precomp.h: #include <ndk/ntndk.h>
lib\setupapi\setupapi_private.h: #include <ndk/ntndk.h>
lib\smlib\precomp.h: #include <ndk/ntndk.h>
lib\user32\include\user32.h: #include <ndk/ntndk.h>
lib\userenv\precomp.h: #include <ndk/ntndk.h>
lib\wshirda\wshirda.h: #include <ndk/ntndk.h>
ntoskrnl\include\ntoskrnl.h: #include <ndk/ntndk.h>
ntoskrnl\include\internal\napi.h: #include <ndk/asm.h>
services\dhcp\include\rosdhcp.h: #include <ndk/ntndk.h>
services\eventlog\eventlog.h: #include <ndk/ntndk.h>
services\rpcss\rpcss.h: #include <ndk/ntndk.h>
subsys\csrss\csrss.h: #include <ndk/ntndk.h>
subsys\csrss\include\api.h: #include <ndk/ntndk.h>
subsys\csrss\win32csr\w32csr.h: #include <ndk/ntndk.h>
subsys\smss\smss.h: #include <ndk/ntndk.h>
subsys\system\cmd\precomp.h: #include <ndk/ntndk.h>
subsys\system\services\services.h: #include <ndk/ntndk.h>
subsys\system\taskmgr\precomp.h: #include <ndk/ntndk.h>
subsys\system\usetup\usetup.h: #include <ndk/ntndk.h>
+244 -244
View File
@@ -1,244 +1,244 @@
/*++ NDK Version: 0095
Copyright (c) Alex Ionescu. All rights reserved.
Header Name:
ifssupp.h
Abstract:
NDK Support for usage without the IFS. Will be deprecated at WDK Release.
Author:
Alex Ionescu ([email protected]) 06-Oct-2004
--*/
#ifndef _NTIFS_
#ifndef NTOS_MODE_USER
#define _NTIFS_
#define TOKEN_SOURCE_LENGTH 8
typedef enum _TOKEN_TYPE
{
TokenPrimary = 1,
TokenImpersonation
} TOKEN_TYPE, *PTOKEN_TYPE;
typedef PVOID PRTL_HEAP_PARAMETERS;
typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
typedef struct _RTL_SPLAY_LINKS
{
struct _RTL_SPLAY_LINKS *Parent;
struct _RTL_SPLAY_LINKS *LeftChild;
struct _RTL_SPLAY_LINKS *RightChild;
} RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS;
#if defined(USE_LPC6432)
#define LPC_CLIENT_ID CLIENT_ID64
#define LPC_SIZE_T ULONGLONG
#define LPC_PVOID ULONGLONG
#define LPC_HANDLE ULONGLONG
#else
#define LPC_CLIENT_ID CLIENT_ID
#define LPC_SIZE_T SIZE_T
#define LPC_PVOID PVOID
#define LPC_HANDLE HANDLE
#endif
typedef struct _PORT_MESSAGE
{
union
{
struct
{
CSHORT DataLength;
CSHORT TotalLength;
} s1;
ULONG Length;
} u1;
union
{
struct
{
CSHORT Type;
CSHORT DataInfoOffset;
} s2;
ULONG ZeroInit;
} u2;
union
{
LPC_CLIENT_ID ClientId;
double DoNotUseThisField;
};
ULONG MessageId;
union
{
LPC_SIZE_T ClientViewSize;
ULONG CallbackId;
};
} PORT_MESSAGE, *PPORT_MESSAGE;
typedef struct _PORT_VIEW
{
ULONG Length;
LPC_HANDLE SectionHandle;
ULONG SectionOffset;
LPC_SIZE_T ViewSize;
LPC_PVOID ViewBase;
LPC_PVOID ViewRemoteBase;
} PORT_VIEW, *PPORT_VIEW;
typedef struct _REMOTE_PORT_VIEW
{
ULONG Length;
LPC_SIZE_T ViewSize;
LPC_PVOID ViewBase;
} REMOTE_PORT_VIEW, *PREMOTE_PORT_VIEW;
typedef struct _KAPC_STATE
{
LIST_ENTRY ApcListHead[2];
struct _KPROCESS *Process;
BOOLEAN KernelApcInProgress;
BOOLEAN KernelApcPending;
BOOLEAN UserApcPending;
} KAPC_STATE, *PKAPC_STATE, *RESTRICTED_POINTER PRKAPC_STATE;
typedef struct _KQUEUE
{
DISPATCHER_HEADER Header;
LIST_ENTRY EntryListHead;
ULONG CurrentCount;
ULONG MaximumCount;
LIST_ENTRY ThreadListHead;
} KQUEUE, *PKQUEUE, *RESTRICTED_POINTER PRKQUEUE;
typedef struct _ACE_HEADER
{
UCHAR AceType;
UCHAR AceFlags;
USHORT AceSize;
} ACE_HEADER, *PACE_HEADER;
typedef enum _RTL_GENERIC_COMPARE_RESULTS
{
GenericLessThan,
GenericGreaterThan,
GenericEqual
} RTL_GENERIC_COMPARE_RESULTS;
typedef struct _SID_IDENTIFIER_AUTHORITY
{
UCHAR Value[6];
} SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY;
typedef struct _SID_AND_ATTRIBUTES
{
PSID Sid;
ULONG Attributes;
} SID_AND_ATTRIBUTES, * PSID_AND_ATTRIBUTES;
typedef struct _TOKEN_SOURCE
{
CHAR SourceName[TOKEN_SOURCE_LENGTH];
LUID SourceIdentifier;
} TOKEN_SOURCE, *PTOKEN_SOURCE;
typedef struct _TOKEN_CONTROL
{
LUID TokenId;
LUID AuthenticationId;
LUID ModifiedId;
TOKEN_SOURCE TokenSource;
} TOKEN_CONTROL, *PTOKEN_CONTROL;
typedef struct _SECURITY_CLIENT_CONTEXT
{
SECURITY_QUALITY_OF_SERVICE SecurityQos;
PACCESS_TOKEN ClientToken;
BOOLEAN DirectlyAccessClientToken;
BOOLEAN DirectAccessEffectiveOnly;
BOOLEAN ServerIsRemote;
TOKEN_CONTROL ClientTokenControl;
} SECURITY_CLIENT_CONTEXT, *PSECURITY_CLIENT_CONTEXT;
typedef struct _SECURITY_DESCRIPTOR_RELATIVE
{
UCHAR Revision;
UCHAR Sbz1;
SECURITY_DESCRIPTOR_CONTROL Control;
ULONG Owner;
ULONG Group;
ULONG Sacl;
ULONG Dacl;
} SECURITY_DESCRIPTOR_RELATIVE, *PISECURITY_DESCRIPTOR_RELATIVE;
typedef struct _TOKEN_GROUPS
{
ULONG GroupCount;
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];
} TOKEN_GROUPS, *PTOKEN_GROUPS;
typedef struct _TOKEN_PRIVILEGES
{
ULONG PrivilegeCount;
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES;
typedef struct _TOKEN_USER
{
SID_AND_ATTRIBUTES User;
} TOKEN_USER, *PTOKEN_USER;
typedef enum _TOKEN_INFORMATION_CLASS
{
TokenUser = 1,
TokenGroups,
TokenPrivileges,
TokenOwner,
TokenPrimaryGroup,
TokenDefaultDacl,
TokenSource,
TokenType,
TokenImpersonationLevel,
TokenStatistics,
TokenRestrictedSids,
TokenSessionId,
TokenGroupsAndPrivileges,
TokenSessionReference,
TokenSandBoxInert,
TokenAuditPolicy,
TokenOrigin,
TokenElevationType,
TokenLinkedToken,
TokenElevation,
TokenIsRestricted,
TokenAccessInformation,
TokenVirtualization,
TokenIntegrityLevel,
TokenIntegrityLevelDesktop,
TokenMandatoryPolicy,
MaxTokenInfoClass
} TOKEN_INFORMATION_CLASS, *PTOKEN_INFORMATION_CLASS;
typedef struct _TOKEN_OWNER
{
PSID Owner;
} TOKEN_OWNER, *PTOKEN_OWNER;
typedef struct _TOKEN_PRIMARY_GROUP
{
PSID PrimaryGroup;
} TOKEN_PRIMARY_GROUP, *PTOKEN_PRIMARY_GROUP;
typedef struct _TOKEN_DEFAULT_DACL
{
PACL DefaultDacl;
} TOKEN_DEFAULT_DACL, *PTOKEN_DEFAULT_DACL;
#endif // !NTOS_MODE_USER
#endif // _NTIFS_
/*++ NDK Version: 0095
Copyright (c) Alex Ionescu. All rights reserved.
Header Name:
ifssupp.h
Abstract:
NDK Support for usage without the IFS. Will be deprecated at WDK Release.
Author:
Alex Ionescu ([email protected]) 06-Oct-2004
--*/
#ifndef _NTIFS_
#ifndef NTOS_MODE_USER
#define _NTIFS_
#define TOKEN_SOURCE_LENGTH 8
typedef enum _TOKEN_TYPE
{
TokenPrimary = 1,
TokenImpersonation
} TOKEN_TYPE, *PTOKEN_TYPE;
typedef PVOID PRTL_HEAP_PARAMETERS;
typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
typedef struct _RTL_SPLAY_LINKS
{
struct _RTL_SPLAY_LINKS *Parent;
struct _RTL_SPLAY_LINKS *LeftChild;
struct _RTL_SPLAY_LINKS *RightChild;
} RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS;
#if defined(USE_LPC6432)
#define LPC_CLIENT_ID CLIENT_ID64
#define LPC_SIZE_T ULONGLONG
#define LPC_PVOID ULONGLONG
#define LPC_HANDLE ULONGLONG
#else
#define LPC_CLIENT_ID CLIENT_ID
#define LPC_SIZE_T SIZE_T
#define LPC_PVOID PVOID
#define LPC_HANDLE HANDLE
#endif
typedef struct _PORT_MESSAGE
{
union
{
struct
{
CSHORT DataLength;
CSHORT TotalLength;
} s1;
ULONG Length;
} u1;
union
{
struct
{
CSHORT Type;
CSHORT DataInfoOffset;
} s2;
ULONG ZeroInit;
} u2;
union
{
LPC_CLIENT_ID ClientId;
double DoNotUseThisField;
};
ULONG MessageId;
union
{
LPC_SIZE_T ClientViewSize;
ULONG CallbackId;
};
} PORT_MESSAGE, *PPORT_MESSAGE;
typedef struct _PORT_VIEW
{
ULONG Length;
LPC_HANDLE SectionHandle;
ULONG SectionOffset;
LPC_SIZE_T ViewSize;
LPC_PVOID ViewBase;
LPC_PVOID ViewRemoteBase;
} PORT_VIEW, *PPORT_VIEW;
typedef struct _REMOTE_PORT_VIEW
{
ULONG Length;
LPC_SIZE_T ViewSize;
LPC_PVOID ViewBase;
} REMOTE_PORT_VIEW, *PREMOTE_PORT_VIEW;
typedef struct _KAPC_STATE
{
LIST_ENTRY ApcListHead[2];
struct _KPROCESS *Process;
BOOLEAN KernelApcInProgress;
BOOLEAN KernelApcPending;
BOOLEAN UserApcPending;
} KAPC_STATE, *PKAPC_STATE, *RESTRICTED_POINTER PRKAPC_STATE;
typedef struct _KQUEUE
{
DISPATCHER_HEADER Header;
LIST_ENTRY EntryListHead;
ULONG CurrentCount;
ULONG MaximumCount;
LIST_ENTRY ThreadListHead;
} KQUEUE, *PKQUEUE, *RESTRICTED_POINTER PRKQUEUE;
typedef struct _ACE_HEADER
{
UCHAR AceType;
UCHAR AceFlags;
USHORT AceSize;
} ACE_HEADER, *PACE_HEADER;
typedef enum _RTL_GENERIC_COMPARE_RESULTS
{
GenericLessThan,
GenericGreaterThan,
GenericEqual
} RTL_GENERIC_COMPARE_RESULTS;
typedef struct _SID_IDENTIFIER_AUTHORITY
{
UCHAR Value[6];
} SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY;
typedef struct _SID_AND_ATTRIBUTES
{
PSID Sid;
ULONG Attributes;
} SID_AND_ATTRIBUTES, * PSID_AND_ATTRIBUTES;
typedef struct _TOKEN_SOURCE
{
CHAR SourceName[TOKEN_SOURCE_LENGTH];
LUID SourceIdentifier;
} TOKEN_SOURCE, *PTOKEN_SOURCE;
typedef struct _TOKEN_CONTROL
{
LUID TokenId;
LUID AuthenticationId;
LUID ModifiedId;
TOKEN_SOURCE TokenSource;
} TOKEN_CONTROL, *PTOKEN_CONTROL;
typedef struct _SECURITY_CLIENT_CONTEXT
{
SECURITY_QUALITY_OF_SERVICE SecurityQos;
PACCESS_TOKEN ClientToken;
BOOLEAN DirectlyAccessClientToken;
BOOLEAN DirectAccessEffectiveOnly;
BOOLEAN ServerIsRemote;
TOKEN_CONTROL ClientTokenControl;
} SECURITY_CLIENT_CONTEXT, *PSECURITY_CLIENT_CONTEXT;
typedef struct _SECURITY_DESCRIPTOR_RELATIVE
{
UCHAR Revision;
UCHAR Sbz1;
SECURITY_DESCRIPTOR_CONTROL Control;
ULONG Owner;
ULONG Group;
ULONG Sacl;
ULONG Dacl;
} SECURITY_DESCRIPTOR_RELATIVE, *PISECURITY_DESCRIPTOR_RELATIVE;
typedef struct _TOKEN_GROUPS
{
ULONG GroupCount;
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];
} TOKEN_GROUPS, *PTOKEN_GROUPS;
typedef struct _TOKEN_PRIVILEGES
{
ULONG PrivilegeCount;
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES;
typedef struct _TOKEN_USER
{
SID_AND_ATTRIBUTES User;
} TOKEN_USER, *PTOKEN_USER;
typedef enum _TOKEN_INFORMATION_CLASS
{
TokenUser = 1,
TokenGroups,
TokenPrivileges,
TokenOwner,
TokenPrimaryGroup,
TokenDefaultDacl,
TokenSource,
TokenType,
TokenImpersonationLevel,
TokenStatistics,
TokenRestrictedSids,
TokenSessionId,
TokenGroupsAndPrivileges,
TokenSessionReference,
TokenSandBoxInert,
TokenAuditPolicy,
TokenOrigin,
TokenElevationType,
TokenLinkedToken,
TokenElevation,
TokenIsRestricted,
TokenAccessInformation,
TokenVirtualization,
TokenIntegrityLevel,
TokenIntegrityLevelDesktop,
TokenMandatoryPolicy,
MaxTokenInfoClass
} TOKEN_INFORMATION_CLASS, *PTOKEN_INFORMATION_CLASS;
typedef struct _TOKEN_OWNER
{
PSID Owner;
} TOKEN_OWNER, *PTOKEN_OWNER;
typedef struct _TOKEN_PRIMARY_GROUP
{
PSID PrimaryGroup;
} TOKEN_PRIMARY_GROUP, *PTOKEN_PRIMARY_GROUP;
typedef struct _TOKEN_DEFAULT_DACL
{
PACL DefaultDacl;
} TOKEN_DEFAULT_DACL, *PTOKEN_DEFAULT_DACL;
#endif // !NTOS_MODE_USER
#endif // _NTIFS_
+352 -352
View File
@@ -1,352 +1,352 @@
/*++ NDK Version: 0095
Copyright (c) Alex Ionescu. All rights reserved.
Header Name:
lpcfuncs.h
Abstract:
Function definitions for the Executive.
Author:
Alex Ionescu ([email protected]) 06-Oct-2004
--*/
#ifndef _LPCFUNCS_H
#define _LPCFUNCS_H
//
// Dependencies
//
#include <umtypes.h>
//
// Native calls
//
NTSTATUS
NTAPI
NtAcceptConnectPort(
PHANDLE PortHandle,
PVOID PortContext OPTIONAL,
PPORT_MESSAGE ConnectionRequest,
BOOLEAN AcceptConnection,
PPORT_VIEW ServerView OPTIONAL,
PREMOTE_PORT_VIEW ClientView OPTIONAL
);
NTSTATUS
NTAPI
NtCompleteConnectPort(
HANDLE PortHandle
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtConnectPort(
PHANDLE PortHandle,
PUNICODE_STRING PortName,
PSECURITY_QUALITY_OF_SERVICE SecurityQos,
PPORT_VIEW ClientView OPTIONAL,
PREMOTE_PORT_VIEW ServerView OPTIONAL,
PULONG MaxMessageLength OPTIONAL,
PVOID ConnectionInformation OPTIONAL,
PULONG ConnectionInformationLength OPTIONAL
);
NTSTATUS
NTAPI
NtCreatePort(
PHANDLE PortHandle,
POBJECT_ATTRIBUTES ObjectAttributes,
ULONG MaxConnectionInfoLength,
ULONG MaxMessageLength,
ULONG MaxPoolUsage
);
NTSTATUS
NTAPI
NtCreateWaitablePort(
PHANDLE PortHandle,
POBJECT_ATTRIBUTES ObjectAttributes,
ULONG MaxConnectInfoLength,
ULONG MaxDataLength,
ULONG NPMessageQueueSize OPTIONAL
);
NTSTATUS
NTAPI
NtImpersonateClientOfPort(
HANDLE PortHandle,
PPORT_MESSAGE ClientMessage
);
NTSTATUS
NTAPI
NtListenPort(
HANDLE PortHandle,
PPORT_MESSAGE ConnectionRequest
);
NTSTATUS
NTAPI
NtQueryInformationPort(
HANDLE PortHandle,
PORT_INFORMATION_CLASS PortInformationClass,
PVOID PortInformation,
ULONG PortInformationLength,
PULONG ReturnLength
);
NTSTATUS
NTAPI
NtReadRequestData(
HANDLE PortHandle,
PPORT_MESSAGE Message,
ULONG Index,
PVOID Buffer,
ULONG BufferLength,
PULONG ReturnLength
);
NTSTATUS
NTAPI
NtReplyPort(
IN HANDLE PortHandle,
IN PPORT_MESSAGE LpcReply
);
NTSTATUS
NTAPI
NtReplyWaitReceivePort(
IN HANDLE PortHandle,
OUT PVOID *PortContext OPTIONAL,
IN PPORT_MESSAGE ReplyMessage OPTIONAL,
OUT PPORT_MESSAGE ReceiveMessage
);
NTSTATUS
NTAPI
NtReplyWaitReceivePortEx(
IN HANDLE PortHandle,
OUT PVOID *PortContext OPTIONAL,
IN PPORT_MESSAGE ReplyMessage OPTIONAL,
OUT PPORT_MESSAGE ReceiveMessage,
IN PLARGE_INTEGER Timeout OPTIONAL
);
NTSTATUS
NTAPI
NtReplyWaitReplyPort(
IN HANDLE PortHandle,
OUT PPORT_MESSAGE ReplyMessage
);
NTSTATUS
NTAPI
NtRequestPort(
IN HANDLE PortHandle,
IN PPORT_MESSAGE LpcMessage
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtRequestWaitReplyPort(
IN HANDLE PortHandle,
OUT PPORT_MESSAGE LpcReply,
IN PPORT_MESSAGE LpcRequest
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtSecureConnectPort(
PHANDLE PortHandle,
PUNICODE_STRING PortName,
PSECURITY_QUALITY_OF_SERVICE SecurityQos,
PPORT_VIEW ClientView OPTIONAL,
PSID Sid OPTIONAL,
PREMOTE_PORT_VIEW ServerView OPTIONAL,
PULONG MaxMessageLength OPTIONAL,
PVOID ConnectionInformation OPTIONAL,
PULONG ConnectionInformationLength OPTIONAL
);
NTSTATUS
NTAPI
NtWriteRequestData(
HANDLE PortHandle,
PPORT_MESSAGE Message,
ULONG Index,
PVOID Buffer,
ULONG BufferLength,
PULONG ReturnLength
);
NTSTATUS
NTAPI
ZwAcceptConnectPort(
PHANDLE PortHandle,
PVOID PortContext OPTIONAL,
PPORT_MESSAGE ConnectionRequest,
BOOLEAN AcceptConnection,
PPORT_VIEW ServerView OPTIONAL,
PREMOTE_PORT_VIEW ClientView OPTIONAL
);
NTSTATUS
NTAPI
ZwCompleteConnectPort(
HANDLE PortHandle
);
NTSYSCALLAPI
NTSTATUS
NTAPI
ZwConnectPort(
PHANDLE PortHandle,
PUNICODE_STRING PortName,
PSECURITY_QUALITY_OF_SERVICE SecurityQos,
PPORT_VIEW ClientView OPTIONAL,
PREMOTE_PORT_VIEW ServerView OPTIONAL,
PULONG MaxMessageLength OPTIONAL,
PVOID ConnectionInformation OPTIONAL,
PULONG ConnectionInformationLength OPTIONAL
);
NTSTATUS
NTAPI
ZwCreatePort(
PHANDLE PortHandle,
POBJECT_ATTRIBUTES ObjectAttributes,
ULONG MaxConnectionInfoLength,
ULONG MaxMessageLength,
ULONG MaxPoolUsage
);
NTSTATUS
NTAPI
ZwCreateWaitablePort(
PHANDLE PortHandle,
POBJECT_ATTRIBUTES ObjectAttributes,
ULONG MaxConnectInfoLength,
ULONG MaxDataLength,
ULONG NPMessageQueueSize OPTIONAL
);
NTSTATUS
NTAPI
ZwImpersonateClientOfPort(
HANDLE PortHandle,
PPORT_MESSAGE ClientMessage
);
NTSTATUS
NTAPI
ZwListenPort(
HANDLE PortHandle,
PPORT_MESSAGE ConnectionRequest
);
NTSTATUS
NTAPI
ZwQueryInformationPort(
HANDLE PortHandle,
PORT_INFORMATION_CLASS PortInformationClass,
PVOID PortInformation,
ULONG PortInformationLength,
PULONG ReturnLength
);
NTSTATUS
NTAPI
ZwReadRequestData(
HANDLE PortHandle,
PPORT_MESSAGE Message,
ULONG Index,
PVOID Buffer,
ULONG BufferLength,
PULONG ReturnLength
);
NTSTATUS
NTAPI
ZwReplyPort(
IN HANDLE PortHandle,
IN PPORT_MESSAGE LpcReply
);
NTSTATUS
NTAPI
ZwReplyWaitReceivePort(
IN HANDLE PortHandle,
OUT PVOID *PortContext OPTIONAL,
IN PPORT_MESSAGE ReplyMessage OPTIONAL,
OUT PPORT_MESSAGE ReceiveMessage
);
NTSTATUS
NTAPI
ZwReplyWaitReceivePortEx(
IN HANDLE PortHandle,
OUT PVOID *PortContext OPTIONAL,
IN PPORT_MESSAGE ReplyMessage OPTIONAL,
OUT PPORT_MESSAGE ReceiveMessage,
IN PLARGE_INTEGER Timeout OPTIONAL
);
NTSTATUS
NTAPI
ZwReplyWaitReplyPort(
IN HANDLE PortHandle,
OUT PPORT_MESSAGE ReplyMessage
);
NTSTATUS
NTAPI
ZwRequestPort(
IN HANDLE PortHandle,
IN PPORT_MESSAGE LpcMessage
);
NTSYSCALLAPI
NTSTATUS
NTAPI
ZwRequestWaitReplyPort(
IN HANDLE PortHandle,
OUT PPORT_MESSAGE LpcReply,
IN PPORT_MESSAGE LpcRequest
);
NTSYSCALLAPI
NTSTATUS
NTAPI
ZwSecureConnectPort(
PHANDLE PortHandle,
PUNICODE_STRING PortName,
PSECURITY_QUALITY_OF_SERVICE SecurityQos,
PPORT_VIEW ClientView OPTIONAL,
PSID Sid OPTIONAL,
PREMOTE_PORT_VIEW ServerView OPTIONAL,
PULONG MaxMessageLength OPTIONAL,
PVOID ConnectionInformation OPTIONAL,
PULONG ConnectionInformationLength OPTIONAL
);
NTSTATUS
NTAPI
ZwWriteRequestData(
HANDLE PortHandle,
PPORT_MESSAGE Message,
ULONG Index,
PVOID Buffer,
ULONG BufferLength,
PULONG ReturnLength
);
#endif
/*++ NDK Version: 0095
Copyright (c) Alex Ionescu. All rights reserved.
Header Name:
lpcfuncs.h
Abstract:
Function definitions for the Executive.
Author:
Alex Ionescu ([email protected]) 06-Oct-2004
--*/
#ifndef _LPCFUNCS_H
#define _LPCFUNCS_H
//
// Dependencies
//
#include <umtypes.h>
//
// Native calls
//
NTSTATUS
NTAPI
NtAcceptConnectPort(
PHANDLE PortHandle,
PVOID PortContext OPTIONAL,
PPORT_MESSAGE ConnectionRequest,
BOOLEAN AcceptConnection,
PPORT_VIEW ServerView OPTIONAL,
PREMOTE_PORT_VIEW ClientView OPTIONAL
);
NTSTATUS
NTAPI
NtCompleteConnectPort(
HANDLE PortHandle
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtConnectPort(
PHANDLE PortHandle,
PUNICODE_STRING PortName,
PSECURITY_QUALITY_OF_SERVICE SecurityQos,
PPORT_VIEW ClientView OPTIONAL,
PREMOTE_PORT_VIEW ServerView OPTIONAL,
PULONG MaxMessageLength OPTIONAL,
PVOID ConnectionInformation OPTIONAL,
PULONG ConnectionInformationLength OPTIONAL
);
NTSTATUS
NTAPI
NtCreatePort(
PHANDLE PortHandle,
POBJECT_ATTRIBUTES ObjectAttributes,
ULONG MaxConnectionInfoLength,
ULONG MaxMessageLength,
ULONG MaxPoolUsage
);
NTSTATUS
NTAPI
NtCreateWaitablePort(
PHANDLE PortHandle,
POBJECT_ATTRIBUTES ObjectAttributes,
ULONG MaxConnectInfoLength,
ULONG MaxDataLength,
ULONG NPMessageQueueSize OPTIONAL
);
NTSTATUS
NTAPI
NtImpersonateClientOfPort(
HANDLE PortHandle,
PPORT_MESSAGE ClientMessage
);
NTSTATUS
NTAPI
NtListenPort(
HANDLE PortHandle,
PPORT_MESSAGE ConnectionRequest
);
NTSTATUS
NTAPI
NtQueryInformationPort(
HANDLE PortHandle,
PORT_INFORMATION_CLASS PortInformationClass,
PVOID PortInformation,
ULONG PortInformationLength,
PULONG ReturnLength
);
NTSTATUS
NTAPI
NtReadRequestData(
HANDLE PortHandle,
PPORT_MESSAGE Message,
ULONG Index,
PVOID Buffer,
ULONG BufferLength,
PULONG ReturnLength
);
NTSTATUS
NTAPI
NtReplyPort(
IN HANDLE PortHandle,
IN PPORT_MESSAGE LpcReply
);
NTSTATUS
NTAPI
NtReplyWaitReceivePort(
IN HANDLE PortHandle,
OUT PVOID *PortContext OPTIONAL,
IN PPORT_MESSAGE ReplyMessage OPTIONAL,
OUT PPORT_MESSAGE ReceiveMessage
);
NTSTATUS
NTAPI
NtReplyWaitReceivePortEx(
IN HANDLE PortHandle,
OUT PVOID *PortContext OPTIONAL,
IN PPORT_MESSAGE ReplyMessage OPTIONAL,
OUT PPORT_MESSAGE ReceiveMessage,
IN PLARGE_INTEGER Timeout OPTIONAL
);
NTSTATUS
NTAPI
NtReplyWaitReplyPort(
IN HANDLE PortHandle,
OUT PPORT_MESSAGE ReplyMessage
);
NTSTATUS
NTAPI
NtRequestPort(
IN HANDLE PortHandle,
IN PPORT_MESSAGE LpcMessage
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtRequestWaitReplyPort(
IN HANDLE PortHandle,
OUT PPORT_MESSAGE LpcReply,
IN PPORT_MESSAGE LpcRequest
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtSecureConnectPort(
PHANDLE PortHandle,
PUNICODE_STRING PortName,
PSECURITY_QUALITY_OF_SERVICE SecurityQos,
PPORT_VIEW ClientView OPTIONAL,
PSID Sid OPTIONAL,
PREMOTE_PORT_VIEW ServerView OPTIONAL,
PULONG MaxMessageLength OPTIONAL,
PVOID ConnectionInformation OPTIONAL,
PULONG ConnectionInformationLength OPTIONAL
);
NTSTATUS
NTAPI
NtWriteRequestData(
HANDLE PortHandle,
PPORT_MESSAGE Message,
ULONG Index,
PVOID Buffer,
ULONG BufferLength,
PULONG ReturnLength
);
NTSTATUS
NTAPI
ZwAcceptConnectPort(
PHANDLE PortHandle,
PVOID PortContext OPTIONAL,
PPORT_MESSAGE ConnectionRequest,
BOOLEAN AcceptConnection,
PPORT_VIEW ServerView OPTIONAL,
PREMOTE_PORT_VIEW ClientView OPTIONAL
);
NTSTATUS
NTAPI
ZwCompleteConnectPort(
HANDLE PortHandle
);
NTSYSCALLAPI
NTSTATUS
NTAPI
ZwConnectPort(
PHANDLE PortHandle,
PUNICODE_STRING PortName,
PSECURITY_QUALITY_OF_SERVICE SecurityQos,
PPORT_VIEW ClientView OPTIONAL,
PREMOTE_PORT_VIEW ServerView OPTIONAL,
PULONG MaxMessageLength OPTIONAL,
PVOID ConnectionInformation OPTIONAL,
PULONG ConnectionInformationLength OPTIONAL
);
NTSTATUS
NTAPI
ZwCreatePort(
PHANDLE PortHandle,
POBJECT_ATTRIBUTES ObjectAttributes,
ULONG MaxConnectionInfoLength,
ULONG MaxMessageLength,
ULONG MaxPoolUsage
);
NTSTATUS
NTAPI
ZwCreateWaitablePort(
PHANDLE PortHandle,
POBJECT_ATTRIBUTES ObjectAttributes,
ULONG MaxConnectInfoLength,
ULONG MaxDataLength,
ULONG NPMessageQueueSize OPTIONAL
);
NTSTATUS
NTAPI
ZwImpersonateClientOfPort(
HANDLE PortHandle,
PPORT_MESSAGE ClientMessage
);
NTSTATUS
NTAPI
ZwListenPort(
HANDLE PortHandle,
PPORT_MESSAGE ConnectionRequest
);
NTSTATUS
NTAPI
ZwQueryInformationPort(
HANDLE PortHandle,
PORT_INFORMATION_CLASS PortInformationClass,
PVOID PortInformation,
ULONG PortInformationLength,
PULONG ReturnLength
);
NTSTATUS
NTAPI
ZwReadRequestData(
HANDLE PortHandle,
PPORT_MESSAGE Message,
ULONG Index,
PVOID Buffer,
ULONG BufferLength,
PULONG ReturnLength
);
NTSTATUS
NTAPI
ZwReplyPort(
IN HANDLE PortHandle,
IN PPORT_MESSAGE LpcReply
);
NTSTATUS
NTAPI
ZwReplyWaitReceivePort(
IN HANDLE PortHandle,
OUT PVOID *PortContext OPTIONAL,
IN PPORT_MESSAGE ReplyMessage OPTIONAL,
OUT PPORT_MESSAGE ReceiveMessage
);
NTSTATUS
NTAPI
ZwReplyWaitReceivePortEx(
IN HANDLE PortHandle,
OUT PVOID *PortContext OPTIONAL,
IN PPORT_MESSAGE ReplyMessage OPTIONAL,
OUT PPORT_MESSAGE ReceiveMessage,
IN PLARGE_INTEGER Timeout OPTIONAL
);
NTSTATUS
NTAPI
ZwReplyWaitReplyPort(
IN HANDLE PortHandle,
OUT PPORT_MESSAGE ReplyMessage
);
NTSTATUS
NTAPI
ZwRequestPort(
IN HANDLE PortHandle,
IN PPORT_MESSAGE LpcMessage
);
NTSYSCALLAPI
NTSTATUS
NTAPI
ZwRequestWaitReplyPort(
IN HANDLE PortHandle,
OUT PPORT_MESSAGE LpcReply,
IN PPORT_MESSAGE LpcRequest
);
NTSYSCALLAPI
NTSTATUS
NTAPI
ZwSecureConnectPort(
PHANDLE PortHandle,
PUNICODE_STRING PortName,
PSECURITY_QUALITY_OF_SERVICE SecurityQos,
PPORT_VIEW ClientView OPTIONAL,
PSID Sid OPTIONAL,
PREMOTE_PORT_VIEW ServerView OPTIONAL,
PULONG MaxMessageLength OPTIONAL,
PVOID ConnectionInformation OPTIONAL,
PULONG ConnectionInformationLength OPTIONAL
);
NTSTATUS
NTAPI
ZwWriteRequestData(
HANDLE PortHandle,
PPORT_MESSAGE Message,
ULONG Index,
PVOID Buffer,
ULONG BufferLength,
PULONG ReturnLength
);
#endif
+89 -89
View File
@@ -1,89 +1,89 @@
/*++ NDK Version: 0095
Copyright (c) Alex Ionescu. All rights reserved.
Header Name:
pofuncs.h
Abstract:
Function definitions for the Power Subsystem.
Author:
Alex Ionescu ([email protected]) 06-Oct-2004
--*/
#ifndef _POFUNCS_H
#define _POFUNCS_H
//
// Dependencies
//
#include <umtypes.h>
//
// Native Calls
//
NTSYSCALLAPI
NTSTATUS
NTAPI
NtInitiatePowerAction(
POWER_ACTION SystemAction,
SYSTEM_POWER_STATE MinSystemState,
ULONG Flags,
BOOLEAN Asynchronous
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtPowerInformation(
POWER_INFORMATION_LEVEL PowerInformationLevel,
PVOID InputBuffer,
ULONG InputBufferLength,
PVOID OutputBuffer,
ULONG OutputBufferLength
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtSetSystemPowerState(
IN POWER_ACTION SystemAction,
IN SYSTEM_POWER_STATE MinSystemState,
IN ULONG Flags
);
NTSYSAPI
NTSTATUS
NTAPI
ZwInitiatePowerAction(
POWER_ACTION SystemAction,
SYSTEM_POWER_STATE MinSystemState,
ULONG Flags,
BOOLEAN Asynchronous
);
NTSYSAPI
NTSTATUS
NTAPI
ZwPowerInformation(
POWER_INFORMATION_LEVEL PowerInformationLevel,
PVOID InputBuffer,
ULONG InputBufferLength,
PVOID OutputBuffer,
ULONG OutputBufferLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwSetSystemPowerState(
IN POWER_ACTION SystemAction,
IN SYSTEM_POWER_STATE MinSystemState,
IN ULONG Flags
);
#endif
/*++ NDK Version: 0095
Copyright (c) Alex Ionescu. All rights reserved.
Header Name:
pofuncs.h
Abstract:
Function definitions for the Power Subsystem.
Author:
Alex Ionescu ([email protected]) 06-Oct-2004
--*/
#ifndef _POFUNCS_H
#define _POFUNCS_H
//
// Dependencies
//
#include <umtypes.h>
//
// Native Calls
//
NTSYSCALLAPI
NTSTATUS
NTAPI
NtInitiatePowerAction(
POWER_ACTION SystemAction,
SYSTEM_POWER_STATE MinSystemState,
ULONG Flags,
BOOLEAN Asynchronous
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtPowerInformation(
POWER_INFORMATION_LEVEL PowerInformationLevel,
PVOID InputBuffer,
ULONG InputBufferLength,
PVOID OutputBuffer,
ULONG OutputBufferLength
);
NTSYSCALLAPI
NTSTATUS
NTAPI
NtSetSystemPowerState(
IN POWER_ACTION SystemAction,
IN SYSTEM_POWER_STATE MinSystemState,
IN ULONG Flags
);
NTSYSAPI
NTSTATUS
NTAPI
ZwInitiatePowerAction(
POWER_ACTION SystemAction,
SYSTEM_POWER_STATE MinSystemState,
ULONG Flags,
BOOLEAN Asynchronous
);
NTSYSAPI
NTSTATUS
NTAPI
ZwPowerInformation(
POWER_INFORMATION_LEVEL PowerInformationLevel,
PVOID InputBuffer,
ULONG InputBufferLength,
PVOID OutputBuffer,
ULONG OutputBufferLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwSetSystemPowerState(
IN POWER_ACTION SystemAction,
IN SYSTEM_POWER_STATE MinSystemState,
IN ULONG Flags
);
#endif
+171 -171
View File
@@ -1,171 +1,171 @@
Native Development Kit README
NDK 1.00
-----------------------------
0. PREABMLE
0.1 COPYRIGHT
The NDK is Copyright © 2005 Alex Ionescu.
0.2 CONTACT INFORMATION
The author, Alex Ionescu, may be reached through the following means:
Email: [email protected]
Mail: 2246, Duvernay. H3J 2Y3. Montreal, QC. CANADA.
Phone: (514)581-7156
1. LICENSE
1.1 OPEN SOURCE USAGE
Open Source Projects may choose to use one of either the two following licenses:
GNU GENERAL PUBLIC LICENSE Version 2, June 1991
OR
GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999
The choice is yours to make based on the license which is most compatible with your
software.
You MUST read GPL.TXT or LGPL.TXT after your decision. Violating your chosen license
voids your usage rights of the NDK and will lead to legal action on the part of the
author.
If your Open Source product does not use a license which is compatible with the ones
listed above, please contact the author to reach a mutual agreement to find a better
solution for your product. Alternatively, you may choose to use the Proprietary Usage
license displayed below in section 1.2
If you are unsure of whether or not your product qualifies as an Open Source product,
please contact the Free Software Foundation, or visit their website at www.fsf.org.
1.2 PROPRIETARY USAGE
Because it may be undesirable or impossible to adapt this software to your commercial
and/or proprietary product(s) and/or service(s) using a (L)GPL license, proprietary
products are free to use the following license:
NDK LICENSE Version 1, November 2005
You MUST read NDK.TXT for the full text of this license. Violating your chosen license
voids your usage rights of the NDK, constitutes a copyright violation, and will lead to
legal action on the part of the author.
If you are unsure of have any questions about the NDK License, please contact the
author for further clarification.
2. ORIGINS OF NDK MATERIAL, AND ADDING YOUR OWN
2.1 CONTRIBUTIONS AND SOURCES
The NDK could not exist without the various contributions made by a variety of people
and sources. The following public sources of information were lawfully used:
- GNU NTIFS.H, Revision 43
- W32API, Version 2.5
- Microsoft Driver Development Kit 2003 SP1
- Microsoft Driver Development Kit 2000
- Microsoft Driver Development Kit NT 4
- Microsoft Driver Development Kit WinME
- Microsoft Installable File Systems Kit 2003 SP1
- Microsoft Windows Debugger (WinDBG) 6.5.0003.7
- Microsoft Public Symbolic Data
- Microsoft Public Windows Binaries (strings)
- OSR Technical Articles
- Undocumented windows 2000 Secrets, a Programmer's Cookbook
- Windows NT/2000 Native API Reference
- Windows NT File System Internals
- Windows Internals I - II
- Windows Internals 4th Edition
If the information contained in these sources was copyrighted, the information was not
copied, but simply used as a basis for developing a compatible and identical definition.
No information protected by a patent or NDA was used. All information was publically
located through the Internet or purchased or licensed for lawful use.
Additionally, the following people contributed to the NDK:
- Art Yerkes
- Eric Kohl
- Filip Navara
- Steven Edwards
2.2 BECOMING A CONTRIBUTOR
To contribute information to the NDK, simply contact the author with your new structure,
definition, enumeration, or prototype. Please make sure that your addition is:
1) Actually correct!
2) Present in Windows NT 5, 5.1, 5.2 and/or 6.0
3) Not already accessible through another public header in the DDK, IFS, WDK and/or PSDK.
4) From a publically verifiable source. The author needs to be able to search for your
addition in a public information location (book, Internet, etc) and locate this definition.
5) Not Reversed. Reversing a type is STRONGLY discouraged and a reversed type will more then likely
not be accepted, due to the fact that functionality and naming will be entirely guessed, and things
like unions are almost impossible to determine. It can also bring up possible legal ramifications
depending on your location. However, using a tool to dump the strings inside an executable
for the purpose of locating the actual name or definition of a structure (sometimes possible due
to ASSERTs or debugging strings) is considered 'fair use' and will be a likely candidate.
If your addition satsfies these points, then please submit it, and also include whether or not
you would like to be credited for it.
3. USAGE
3.1 ORGANIZATION
* The NDK is organized in a main folder (include/ndk) with arch-specific subfolders (ex: include/ndk/i386).
* The NDK is structured by NT Subsystem Component (ex: ex, ps, rtl, etc).
* The NDK can either be included on-demand (#include <ndk/xxxxx.h>) or globally (#include <ndk/ntndk.h>).
The former is recommended to reduce compile time.
* The NDK is structured by function and type. Every Subsystem Component has an associated "xxfuncs.h" and
"xxtypes.h" header, where "xx" is the Subsystem (ex: iofuncs.h, iotypes.h)
* The NDK has a special file called "umtypes.h" which exports to User-Mode or Native-Mode Applications the
basic NT types which are present in ntdef.h. This file cannot be included since it would conflict with
winnt.h and/or windef.h. Thus, umtypes.h provides the missing types. This file is automatically included
in a User-Mode NDK project.
* The NDK also includes a file called "umfuncs.h" which exports to User-Mode or Native-Mode Applications
undocumented functions which can only be accessed from ntdll.dll.
* The NDK has another special file called "ifssupp.h", which exports to Kernel-Mode drivers a few types which
are only documented in the IFS kit, and are part of some native definitions. It will be deprecated next year
with the release of the WDK.
3.2 USING IN YOUR PROJECT
* User Mode Application requiring Native Types:
#define WIN32_NO_STATUS /* Tell Windows headers you'll use ntstatus.s from NDK */
#include <windows.h> /* Declare Windows Headers like you normally would */
#include <ntndk.h> /* Declare the NDK Headers */
* Native Mode Application:
#include <windows.h> /* Declare Windows Headers for basic types. NEEDED UNTIL NDK 1.5 */
#include <ntndk.h> /* Declare the NDK Headers */
* Kernel Mode Driver:
#include <ntddk.h> /* Declare DDK Headers like you normally would */
#include <ntndk.h> /* Declare the NDK Headers */
* You may also include only the files you need (example for User-Mode application):
#define WIN32_NO_STATUS /* Tell Windows headers you'll use ntstatus.s from NDK */
#include <windows.h> /* Declare Windows Headers like you normally would */
#include <rtlfuncs.h> /* Declare the Rtl* Functions */
3.3 CAVEATS
* winternl.h: This header, part of the PSDK, was released by Microsoft as part of one of the governmen
lawsuits against it, and documents a certain (minimal) part of the Native API and/or types. Unforunately,
Microsoft decided to hack the Native Types and to define them incorrectly, replacing real members by "reserved"
ones. As such, you 'cannot include winternl.h in any project that uses the NDK. Note however, that the NDK fully
replaces it and retains compatibility with any project that used it.
* Native programs: Native programs must include "windows.h" until the next release of the NDK (1.5). The upcoming
version will automatically detect the lack of missing types and include them. Note however that you will still need
to have the PSDK installed.
Native Development Kit README
NDK 1.00
-----------------------------
0. PREABMLE
0.1 COPYRIGHT
The NDK is Copyright © 2005 Alex Ionescu.
0.2 CONTACT INFORMATION
The author, Alex Ionescu, may be reached through the following means:
Email: [email protected]
Mail: 2246, Duvernay. H3J 2Y3. Montreal, QC. CANADA.
Phone: (514)581-7156
1. LICENSE
1.1 OPEN SOURCE USAGE
Open Source Projects may choose to use one of either the two following licenses:
GNU GENERAL PUBLIC LICENSE Version 2, June 1991
OR
GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999
The choice is yours to make based on the license which is most compatible with your
software.
You MUST read GPL.TXT or LGPL.TXT after your decision. Violating your chosen license
voids your usage rights of the NDK and will lead to legal action on the part of the
author.
If your Open Source product does not use a license which is compatible with the ones
listed above, please contact the author to reach a mutual agreement to find a better
solution for your product. Alternatively, you may choose to use the Proprietary Usage
license displayed below in section 1.2
If you are unsure of whether or not your product qualifies as an Open Source product,
please contact the Free Software Foundation, or visit their website at www.fsf.org.
1.2 PROPRIETARY USAGE
Because it may be undesirable or impossible to adapt this software to your commercial
and/or proprietary product(s) and/or service(s) using a (L)GPL license, proprietary
products are free to use the following license:
NDK LICENSE Version 1, November 2005
You MUST read NDK.TXT for the full text of this license. Violating your chosen license
voids your usage rights of the NDK, constitutes a copyright violation, and will lead to
legal action on the part of the author.
If you are unsure of have any questions about the NDK License, please contact the
author for further clarification.
2. ORIGINS OF NDK MATERIAL, AND ADDING YOUR OWN
2.1 CONTRIBUTIONS AND SOURCES
The NDK could not exist without the various contributions made by a variety of people
and sources. The following public sources of information were lawfully used:
- GNU NTIFS.H, Revision 43
- W32API, Version 2.5
- Microsoft Driver Development Kit 2003 SP1
- Microsoft Driver Development Kit 2000
- Microsoft Driver Development Kit NT 4
- Microsoft Driver Development Kit WinME
- Microsoft Installable File Systems Kit 2003 SP1
- Microsoft Windows Debugger (WinDBG) 6.5.0003.7
- Microsoft Public Symbolic Data
- Microsoft Public Windows Binaries (strings)
- OSR Technical Articles
- Undocumented windows 2000 Secrets, a Programmer's Cookbook
- Windows NT/2000 Native API Reference
- Windows NT File System Internals
- Windows Internals I - II
- Windows Internals 4th Edition
If the information contained in these sources was copyrighted, the information was not
copied, but simply used as a basis for developing a compatible and identical definition.
No information protected by a patent or NDA was used. All information was publically
located through the Internet or purchased or licensed for lawful use.
Additionally, the following people contributed to the NDK:
- Art Yerkes
- Eric Kohl
- Filip Navara
- Steven Edwards
2.2 BECOMING A CONTRIBUTOR
To contribute information to the NDK, simply contact the author with your new structure,
definition, enumeration, or prototype. Please make sure that your addition is:
1) Actually correct!
2) Present in Windows NT 5, 5.1, 5.2 and/or 6.0
3) Not already accessible through another public header in the DDK, IFS, WDK and/or PSDK.
4) From a publically verifiable source. The author needs to be able to search for your
addition in a public information location (book, Internet, etc) and locate this definition.
5) Not Reversed. Reversing a type is STRONGLY discouraged and a reversed type will more then likely
not be accepted, due to the fact that functionality and naming will be entirely guessed, and things
like unions are almost impossible to determine. It can also bring up possible legal ramifications
depending on your location. However, using a tool to dump the strings inside an executable
for the purpose of locating the actual name or definition of a structure (sometimes possible due
to ASSERTs or debugging strings) is considered 'fair use' and will be a likely candidate.
If your addition satsfies these points, then please submit it, and also include whether or not
you would like to be credited for it.
3. USAGE
3.1 ORGANIZATION
* The NDK is organized in a main folder (include/ndk) with arch-specific subfolders (ex: include/ndk/i386).
* The NDK is structured by NT Subsystem Component (ex: ex, ps, rtl, etc).
* The NDK can either be included on-demand (#include <ndk/xxxxx.h>) or globally (#include <ndk/ntndk.h>).
The former is recommended to reduce compile time.
* The NDK is structured by function and type. Every Subsystem Component has an associated "xxfuncs.h" and
"xxtypes.h" header, where "xx" is the Subsystem (ex: iofuncs.h, iotypes.h)
* The NDK has a special file called "umtypes.h" which exports to User-Mode or Native-Mode Applications the
basic NT types which are present in ntdef.h. This file cannot be included since it would conflict with
winnt.h and/or windef.h. Thus, umtypes.h provides the missing types. This file is automatically included
in a User-Mode NDK project.
* The NDK also includes a file called "umfuncs.h" which exports to User-Mode or Native-Mode Applications
undocumented functions which can only be accessed from ntdll.dll.
* The NDK has another special file called "ifssupp.h", which exports to Kernel-Mode drivers a few types which
are only documented in the IFS kit, and are part of some native definitions. It will be deprecated next year
with the release of the WDK.
3.2 USING IN YOUR PROJECT
* User Mode Application requiring Native Types:
#define WIN32_NO_STATUS /* Tell Windows headers you'll use ntstatus.s from NDK */
#include <windows.h> /* Declare Windows Headers like you normally would */
#include <ntndk.h> /* Declare the NDK Headers */
* Native Mode Application:
#include <windows.h> /* Declare Windows Headers for basic types. NEEDED UNTIL NDK 1.5 */
#include <ntndk.h> /* Declare the NDK Headers */
* Kernel Mode Driver:
#include <ntddk.h> /* Declare DDK Headers like you normally would */
#include <ntndk.h> /* Declare the NDK Headers */
* You may also include only the files you need (example for User-Mode application):
#define WIN32_NO_STATUS /* Tell Windows headers you'll use ntstatus.s from NDK */
#include <windows.h> /* Declare Windows Headers like you normally would */
#include <rtlfuncs.h> /* Declare the Rtl* Functions */
3.3 CAVEATS
* winternl.h: This header, part of the PSDK, was released by Microsoft as part of one of the governmen
lawsuits against it, and documents a certain (minimal) part of the Native API and/or types. Unforunately,
Microsoft decided to hack the Native Types and to define them incorrectly, replacing real members by "reserved"
ones. As such, you 'cannot include winternl.h in any project that uses the NDK. Note however, that the NDK fully
replaces it and retains compatibility with any project that used it.
* Native programs: Native programs must include "windows.h" until the next release of the NDK (1.5). The upcoming
version will automatically detect the lack of missing types and include them. Note however that you will still need
to have the PSDK installed.