module winnt;

export extern ( Windows )
{

const uint DELETE = 0x00010000;
const uint READ_CONTROL = 0x00020000;
const uint WRITE_DAC = 0x00040000;
const uint WRITE_OWNER = 0x00080000;
const uint SYNCHRONIZE = 0x00100000;
const uint STANDARD_RIGHTS_REQUIRED = 0x000F0000;
const uint STANDARD_RIGHTS_READ = READ_CONTROL;
const uint STANDARD_RIGHTS_WRITE = READ_CONTROL;
const uint STANDARD_RIGHTS_EXECUTE = READ_CONTROL;
const uint STANDARD_RIGHTS_ALL = 0x001F0000;
const uint SPECIFIC_RIGHTS_ALL = 0x0000FFFF;
const uint ACCESS_SYSTEM_SECURITY = 0x01000000;
const uint MAXIMUM_ALLOWED = 0x02000000;
const uint GENERIC_READ = 0x80000000;
const uint GENERIC_WRITE = 0x40000000;
const uint GENERIC_EXECUTE = 0x20000000;
const uint GENERIC_ALL = 0x10000000;


const uint SERVICE_KERNEL_DRIVER = 0x00000001;
const uint SERVICE_FILE_SYSTEM_DRIVER = 0x00000002;
const uint SERVICE_ADAPTER = 0x00000004;
const uint SERVICE_RECOGNIZER_DRIVER = 0x00000008;
const uint SERVICE_DRIVER = SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVER | SERVICE_RECOGNIZER_DRIVER;
const uint SERVICE_WIN32_OWN_PROCESS = 0x00000010;
const uint SERVICE_WIN32_SHARE_PROCESS = 0x00000020;
const uint SERVICE_WIN32 = SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS;
const uint SERVICE_INTERACTIVE_PROCESS = 0x00000100;
const uint SERVICE_TYPE_ALL = SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVER | SERVICE_INTERACTIVE_PROCESS;

enum : uint
{
	SERVICE_BOOT_START = 0x00000000,
	SERVICE_SYSTEM_START = 0x00000001,
	SERVICE_AUTO_START = 0x00000002,
	SERVICE_DEMAND_START = 0x00000003,
	SERVICE_DISABLED = 0x00000004
}

enum : uint
{
	SERVICE_ERROR_IGNORE = 0x00000000,
	SERVICE_ERROR_NORMAL = 0x00000001,
	SERVICE_ERROR_SEVERE = 0x00000002,
	SERVICE_ERROR_CRITICAL = 0x00000003
}

alias void * PSECURITY_DESCRIPTOR;
alias uint SECURITY_INFORMATION;

} // export extern ( Windows )