1// Code generated by 'go generate'; DO NOT EDIT.
   2
   3package windows
   4
   5import (
   6	"syscall"
   7	"unsafe"
   8)
   9
  10var _ unsafe.Pointer
  11
  12// Do the interface allocations only once for common
  13// Errno values.
  14const (
  15	errnoERROR_IO_PENDING = 997
  16)
  17
  18var (
  19	errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
  20	errERROR_EINVAL     error = syscall.EINVAL
  21)
  22
  23// errnoErr returns common boxed Errno values, to prevent
  24// allocations at runtime.
  25func errnoErr(e syscall.Errno) error {
  26	switch e {
  27	case 0:
  28		return errERROR_EINVAL
  29	case errnoERROR_IO_PENDING:
  30		return errERROR_IO_PENDING
  31	}
  32	// TODO: add more here, after collecting data on the common
  33	// error values see on Windows. (perhaps when running
  34	// all.bat?)
  35	return e
  36}
  37
  38var (
  39	modCfgMgr32 = NewLazySystemDLL("CfgMgr32.dll")
  40	modadvapi32 = NewLazySystemDLL("advapi32.dll")
  41	modcrypt32  = NewLazySystemDLL("crypt32.dll")
  42	moddnsapi   = NewLazySystemDLL("dnsapi.dll")
  43	moddwmapi   = NewLazySystemDLL("dwmapi.dll")
  44	modiphlpapi = NewLazySystemDLL("iphlpapi.dll")
  45	modkernel32 = NewLazySystemDLL("kernel32.dll")
  46	modmswsock  = NewLazySystemDLL("mswsock.dll")
  47	modnetapi32 = NewLazySystemDLL("netapi32.dll")
  48	modntdll    = NewLazySystemDLL("ntdll.dll")
  49	modole32    = NewLazySystemDLL("ole32.dll")
  50	modpsapi    = NewLazySystemDLL("psapi.dll")
  51	modsechost  = NewLazySystemDLL("sechost.dll")
  52	modsecur32  = NewLazySystemDLL("secur32.dll")
  53	modsetupapi = NewLazySystemDLL("setupapi.dll")
  54	modshell32  = NewLazySystemDLL("shell32.dll")
  55	moduser32   = NewLazySystemDLL("user32.dll")
  56	moduserenv  = NewLazySystemDLL("userenv.dll")
  57	modversion  = NewLazySystemDLL("version.dll")
  58	modwinmm    = NewLazySystemDLL("winmm.dll")
  59	modwintrust = NewLazySystemDLL("wintrust.dll")
  60	modws2_32   = NewLazySystemDLL("ws2_32.dll")
  61	modwtsapi32 = NewLazySystemDLL("wtsapi32.dll")
  62
  63	procCM_Get_DevNode_Status                                = modCfgMgr32.NewProc("CM_Get_DevNode_Status")
  64	procCM_Get_Device_Interface_ListW                        = modCfgMgr32.NewProc("CM_Get_Device_Interface_ListW")
  65	procCM_Get_Device_Interface_List_SizeW                   = modCfgMgr32.NewProc("CM_Get_Device_Interface_List_SizeW")
  66	procCM_MapCrToWin32Err                                   = modCfgMgr32.NewProc("CM_MapCrToWin32Err")
  67	procAdjustTokenGroups                                    = modadvapi32.NewProc("AdjustTokenGroups")
  68	procAdjustTokenPrivileges                                = modadvapi32.NewProc("AdjustTokenPrivileges")
  69	procAllocateAndInitializeSid                             = modadvapi32.NewProc("AllocateAndInitializeSid")
  70	procBuildSecurityDescriptorW                             = modadvapi32.NewProc("BuildSecurityDescriptorW")
  71	procChangeServiceConfig2W                                = modadvapi32.NewProc("ChangeServiceConfig2W")
  72	procChangeServiceConfigW                                 = modadvapi32.NewProc("ChangeServiceConfigW")
  73	procCheckTokenMembership                                 = modadvapi32.NewProc("CheckTokenMembership")
  74	procCloseServiceHandle                                   = modadvapi32.NewProc("CloseServiceHandle")
  75	procControlService                                       = modadvapi32.NewProc("ControlService")
  76	procConvertSecurityDescriptorToStringSecurityDescriptorW = modadvapi32.NewProc("ConvertSecurityDescriptorToStringSecurityDescriptorW")
  77	procConvertSidToStringSidW                               = modadvapi32.NewProc("ConvertSidToStringSidW")
  78	procConvertStringSecurityDescriptorToSecurityDescriptorW = modadvapi32.NewProc("ConvertStringSecurityDescriptorToSecurityDescriptorW")
  79	procConvertStringSidToSidW                               = modadvapi32.NewProc("ConvertStringSidToSidW")
  80	procCopySid                                              = modadvapi32.NewProc("CopySid")
  81	procCreateProcessAsUserW                                 = modadvapi32.NewProc("CreateProcessAsUserW")
  82	procCreateServiceW                                       = modadvapi32.NewProc("CreateServiceW")
  83	procCreateWellKnownSid                                   = modadvapi32.NewProc("CreateWellKnownSid")
  84	procCryptAcquireContextW                                 = modadvapi32.NewProc("CryptAcquireContextW")
  85	procCryptGenRandom                                       = modadvapi32.NewProc("CryptGenRandom")
  86	procCryptReleaseContext                                  = modadvapi32.NewProc("CryptReleaseContext")
  87	procDeleteService                                        = modadvapi32.NewProc("DeleteService")
  88	procDeregisterEventSource                                = modadvapi32.NewProc("DeregisterEventSource")
  89	procDuplicateTokenEx                                     = modadvapi32.NewProc("DuplicateTokenEx")
  90	procEnumDependentServicesW                               = modadvapi32.NewProc("EnumDependentServicesW")
  91	procEnumServicesStatusExW                                = modadvapi32.NewProc("EnumServicesStatusExW")
  92	procEqualSid                                             = modadvapi32.NewProc("EqualSid")
  93	procFreeSid                                              = modadvapi32.NewProc("FreeSid")
  94	procGetAce                                               = modadvapi32.NewProc("GetAce")
  95	procGetLengthSid                                         = modadvapi32.NewProc("GetLengthSid")
  96	procGetNamedSecurityInfoW                                = modadvapi32.NewProc("GetNamedSecurityInfoW")
  97	procGetSecurityDescriptorControl                         = modadvapi32.NewProc("GetSecurityDescriptorControl")
  98	procGetSecurityDescriptorDacl                            = modadvapi32.NewProc("GetSecurityDescriptorDacl")
  99	procGetSecurityDescriptorGroup                           = modadvapi32.NewProc("GetSecurityDescriptorGroup")
 100	procGetSecurityDescriptorLength                          = modadvapi32.NewProc("GetSecurityDescriptorLength")
 101	procGetSecurityDescriptorOwner                           = modadvapi32.NewProc("GetSecurityDescriptorOwner")
 102	procGetSecurityDescriptorRMControl                       = modadvapi32.NewProc("GetSecurityDescriptorRMControl")
 103	procGetSecurityDescriptorSacl                            = modadvapi32.NewProc("GetSecurityDescriptorSacl")
 104	procGetSecurityInfo                                      = modadvapi32.NewProc("GetSecurityInfo")
 105	procGetSidIdentifierAuthority                            = modadvapi32.NewProc("GetSidIdentifierAuthority")
 106	procGetSidSubAuthority                                   = modadvapi32.NewProc("GetSidSubAuthority")
 107	procGetSidSubAuthorityCount                              = modadvapi32.NewProc("GetSidSubAuthorityCount")
 108	procGetTokenInformation                                  = modadvapi32.NewProc("GetTokenInformation")
 109	procImpersonateSelf                                      = modadvapi32.NewProc("ImpersonateSelf")
 110	procInitializeSecurityDescriptor                         = modadvapi32.NewProc("InitializeSecurityDescriptor")
 111	procInitiateSystemShutdownExW                            = modadvapi32.NewProc("InitiateSystemShutdownExW")
 112	procIsTokenRestricted                                    = modadvapi32.NewProc("IsTokenRestricted")
 113	procIsValidSecurityDescriptor                            = modadvapi32.NewProc("IsValidSecurityDescriptor")
 114	procIsValidSid                                           = modadvapi32.NewProc("IsValidSid")
 115	procIsWellKnownSid                                       = modadvapi32.NewProc("IsWellKnownSid")
 116	procLookupAccountNameW                                   = modadvapi32.NewProc("LookupAccountNameW")
 117	procLookupAccountSidW                                    = modadvapi32.NewProc("LookupAccountSidW")
 118	procLookupPrivilegeValueW                                = modadvapi32.NewProc("LookupPrivilegeValueW")
 119	procMakeAbsoluteSD                                       = modadvapi32.NewProc("MakeAbsoluteSD")
 120	procMakeSelfRelativeSD                                   = modadvapi32.NewProc("MakeSelfRelativeSD")
 121	procNotifyServiceStatusChangeW                           = modadvapi32.NewProc("NotifyServiceStatusChangeW")
 122	procOpenProcessToken                                     = modadvapi32.NewProc("OpenProcessToken")
 123	procOpenSCManagerW                                       = modadvapi32.NewProc("OpenSCManagerW")
 124	procOpenServiceW                                         = modadvapi32.NewProc("OpenServiceW")
 125	procOpenThreadToken                                      = modadvapi32.NewProc("OpenThreadToken")
 126	procQueryServiceConfig2W                                 = modadvapi32.NewProc("QueryServiceConfig2W")
 127	procQueryServiceConfigW                                  = modadvapi32.NewProc("QueryServiceConfigW")
 128	procQueryServiceDynamicInformation                       = modadvapi32.NewProc("QueryServiceDynamicInformation")
 129	procQueryServiceLockStatusW                              = modadvapi32.NewProc("QueryServiceLockStatusW")
 130	procQueryServiceStatus                                   = modadvapi32.NewProc("QueryServiceStatus")
 131	procQueryServiceStatusEx                                 = modadvapi32.NewProc("QueryServiceStatusEx")
 132	procRegCloseKey                                          = modadvapi32.NewProc("RegCloseKey")
 133	procRegEnumKeyExW                                        = modadvapi32.NewProc("RegEnumKeyExW")
 134	procRegNotifyChangeKeyValue                              = modadvapi32.NewProc("RegNotifyChangeKeyValue")
 135	procRegOpenKeyExW                                        = modadvapi32.NewProc("RegOpenKeyExW")
 136	procRegQueryInfoKeyW                                     = modadvapi32.NewProc("RegQueryInfoKeyW")
 137	procRegQueryValueExW                                     = modadvapi32.NewProc("RegQueryValueExW")
 138	procRegisterEventSourceW                                 = modadvapi32.NewProc("RegisterEventSourceW")
 139	procRegisterServiceCtrlHandlerExW                        = modadvapi32.NewProc("RegisterServiceCtrlHandlerExW")
 140	procReportEventW                                         = modadvapi32.NewProc("ReportEventW")
 141	procRevertToSelf                                         = modadvapi32.NewProc("RevertToSelf")
 142	procSetEntriesInAclW                                     = modadvapi32.NewProc("SetEntriesInAclW")
 143	procSetKernelObjectSecurity                              = modadvapi32.NewProc("SetKernelObjectSecurity")
 144	procSetNamedSecurityInfoW                                = modadvapi32.NewProc("SetNamedSecurityInfoW")
 145	procSetSecurityDescriptorControl                         = modadvapi32.NewProc("SetSecurityDescriptorControl")
 146	procSetSecurityDescriptorDacl                            = modadvapi32.NewProc("SetSecurityDescriptorDacl")
 147	procSetSecurityDescriptorGroup                           = modadvapi32.NewProc("SetSecurityDescriptorGroup")
 148	procSetSecurityDescriptorOwner                           = modadvapi32.NewProc("SetSecurityDescriptorOwner")
 149	procSetSecurityDescriptorRMControl                       = modadvapi32.NewProc("SetSecurityDescriptorRMControl")
 150	procSetSecurityDescriptorSacl                            = modadvapi32.NewProc("SetSecurityDescriptorSacl")
 151	procSetSecurityInfo                                      = modadvapi32.NewProc("SetSecurityInfo")
 152	procSetServiceStatus                                     = modadvapi32.NewProc("SetServiceStatus")
 153	procSetThreadToken                                       = modadvapi32.NewProc("SetThreadToken")
 154	procSetTokenInformation                                  = modadvapi32.NewProc("SetTokenInformation")
 155	procStartServiceCtrlDispatcherW                          = modadvapi32.NewProc("StartServiceCtrlDispatcherW")
 156	procStartServiceW                                        = modadvapi32.NewProc("StartServiceW")
 157	procCertAddCertificateContextToStore                     = modcrypt32.NewProc("CertAddCertificateContextToStore")
 158	procCertCloseStore                                       = modcrypt32.NewProc("CertCloseStore")
 159	procCertCreateCertificateContext                         = modcrypt32.NewProc("CertCreateCertificateContext")
 160	procCertDeleteCertificateFromStore                       = modcrypt32.NewProc("CertDeleteCertificateFromStore")
 161	procCertDuplicateCertificateContext                      = modcrypt32.NewProc("CertDuplicateCertificateContext")
 162	procCertEnumCertificatesInStore                          = modcrypt32.NewProc("CertEnumCertificatesInStore")
 163	procCertFindCertificateInStore                           = modcrypt32.NewProc("CertFindCertificateInStore")
 164	procCertFindChainInStore                                 = modcrypt32.NewProc("CertFindChainInStore")
 165	procCertFindExtension                                    = modcrypt32.NewProc("CertFindExtension")
 166	procCertFreeCertificateChain                             = modcrypt32.NewProc("CertFreeCertificateChain")
 167	procCertFreeCertificateContext                           = modcrypt32.NewProc("CertFreeCertificateContext")
 168	procCertGetCertificateChain                              = modcrypt32.NewProc("CertGetCertificateChain")
 169	procCertGetNameStringW                                   = modcrypt32.NewProc("CertGetNameStringW")
 170	procCertOpenStore                                        = modcrypt32.NewProc("CertOpenStore")
 171	procCertOpenSystemStoreW                                 = modcrypt32.NewProc("CertOpenSystemStoreW")
 172	procCertVerifyCertificateChainPolicy                     = modcrypt32.NewProc("CertVerifyCertificateChainPolicy")
 173	procCryptAcquireCertificatePrivateKey                    = modcrypt32.NewProc("CryptAcquireCertificatePrivateKey")
 174	procCryptDecodeObject                                    = modcrypt32.NewProc("CryptDecodeObject")
 175	procCryptProtectData                                     = modcrypt32.NewProc("CryptProtectData")
 176	procCryptQueryObject                                     = modcrypt32.NewProc("CryptQueryObject")
 177	procCryptUnprotectData                                   = modcrypt32.NewProc("CryptUnprotectData")
 178	procPFXImportCertStore                                   = modcrypt32.NewProc("PFXImportCertStore")
 179	procDnsNameCompare_W                                     = moddnsapi.NewProc("DnsNameCompare_W")
 180	procDnsQuery_W                                           = moddnsapi.NewProc("DnsQuery_W")
 181	procDnsRecordListFree                                    = moddnsapi.NewProc("DnsRecordListFree")
 182	procDwmGetWindowAttribute                                = moddwmapi.NewProc("DwmGetWindowAttribute")
 183	procDwmSetWindowAttribute                                = moddwmapi.NewProc("DwmSetWindowAttribute")
 184	procCancelMibChangeNotify2                               = modiphlpapi.NewProc("CancelMibChangeNotify2")
 185	procFreeMibTable                                         = modiphlpapi.NewProc("FreeMibTable")
 186	procGetAdaptersAddresses                                 = modiphlpapi.NewProc("GetAdaptersAddresses")
 187	procGetAdaptersInfo                                      = modiphlpapi.NewProc("GetAdaptersInfo")
 188	procGetBestInterfaceEx                                   = modiphlpapi.NewProc("GetBestInterfaceEx")
 189	procGetIfEntry                                           = modiphlpapi.NewProc("GetIfEntry")
 190	procGetIfEntry2Ex                                        = modiphlpapi.NewProc("GetIfEntry2Ex")
 191	procGetIpForwardEntry2                                   = modiphlpapi.NewProc("GetIpForwardEntry2")
 192	procGetIpForwardTable2                                   = modiphlpapi.NewProc("GetIpForwardTable2")
 193	procGetUnicastIpAddressEntry                             = modiphlpapi.NewProc("GetUnicastIpAddressEntry")
 194	procNotifyIpInterfaceChange                              = modiphlpapi.NewProc("NotifyIpInterfaceChange")
 195	procNotifyRouteChange2                                   = modiphlpapi.NewProc("NotifyRouteChange2")
 196	procNotifyUnicastIpAddressChange                         = modiphlpapi.NewProc("NotifyUnicastIpAddressChange")
 197	procAddDllDirectory                                      = modkernel32.NewProc("AddDllDirectory")
 198	procAssignProcessToJobObject                             = modkernel32.NewProc("AssignProcessToJobObject")
 199	procCancelIo                                             = modkernel32.NewProc("CancelIo")
 200	procCancelIoEx                                           = modkernel32.NewProc("CancelIoEx")
 201	procClearCommBreak                                       = modkernel32.NewProc("ClearCommBreak")
 202	procClearCommError                                       = modkernel32.NewProc("ClearCommError")
 203	procCloseHandle                                          = modkernel32.NewProc("CloseHandle")
 204	procClosePseudoConsole                                   = modkernel32.NewProc("ClosePseudoConsole")
 205	procConnectNamedPipe                                     = modkernel32.NewProc("ConnectNamedPipe")
 206	procCreateDirectoryW                                     = modkernel32.NewProc("CreateDirectoryW")
 207	procCreateEventExW                                       = modkernel32.NewProc("CreateEventExW")
 208	procCreateEventW                                         = modkernel32.NewProc("CreateEventW")
 209	procCreateFileMappingW                                   = modkernel32.NewProc("CreateFileMappingW")
 210	procCreateFileW                                          = modkernel32.NewProc("CreateFileW")
 211	procCreateHardLinkW                                      = modkernel32.NewProc("CreateHardLinkW")
 212	procCreateIoCompletionPort                               = modkernel32.NewProc("CreateIoCompletionPort")
 213	procCreateJobObjectW                                     = modkernel32.NewProc("CreateJobObjectW")
 214	procCreateMutexExW                                       = modkernel32.NewProc("CreateMutexExW")
 215	procCreateMutexW                                         = modkernel32.NewProc("CreateMutexW")
 216	procCreateNamedPipeW                                     = modkernel32.NewProc("CreateNamedPipeW")
 217	procCreatePipe                                           = modkernel32.NewProc("CreatePipe")
 218	procCreateProcessW                                       = modkernel32.NewProc("CreateProcessW")
 219	procCreatePseudoConsole                                  = modkernel32.NewProc("CreatePseudoConsole")
 220	procCreateSymbolicLinkW                                  = modkernel32.NewProc("CreateSymbolicLinkW")
 221	procCreateToolhelp32Snapshot                             = modkernel32.NewProc("CreateToolhelp32Snapshot")
 222	procDefineDosDeviceW                                     = modkernel32.NewProc("DefineDosDeviceW")
 223	procDeleteFileW                                          = modkernel32.NewProc("DeleteFileW")
 224	procDeleteProcThreadAttributeList                        = modkernel32.NewProc("DeleteProcThreadAttributeList")
 225	procDeleteVolumeMountPointW                              = modkernel32.NewProc("DeleteVolumeMountPointW")
 226	procDeviceIoControl                                      = modkernel32.NewProc("DeviceIoControl")
 227	procDisconnectNamedPipe                                  = modkernel32.NewProc("DisconnectNamedPipe")
 228	procDuplicateHandle                                      = modkernel32.NewProc("DuplicateHandle")
 229	procEscapeCommFunction                                   = modkernel32.NewProc("EscapeCommFunction")
 230	procExitProcess                                          = modkernel32.NewProc("ExitProcess")
 231	procExpandEnvironmentStringsW                            = modkernel32.NewProc("ExpandEnvironmentStringsW")
 232	procFindClose                                            = modkernel32.NewProc("FindClose")
 233	procFindCloseChangeNotification                          = modkernel32.NewProc("FindCloseChangeNotification")
 234	procFindFirstChangeNotificationW                         = modkernel32.NewProc("FindFirstChangeNotificationW")
 235	procFindFirstFileW                                       = modkernel32.NewProc("FindFirstFileW")
 236	procFindFirstVolumeMountPointW                           = modkernel32.NewProc("FindFirstVolumeMountPointW")
 237	procFindFirstVolumeW                                     = modkernel32.NewProc("FindFirstVolumeW")
 238	procFindNextChangeNotification                           = modkernel32.NewProc("FindNextChangeNotification")
 239	procFindNextFileW                                        = modkernel32.NewProc("FindNextFileW")
 240	procFindNextVolumeMountPointW                            = modkernel32.NewProc("FindNextVolumeMountPointW")
 241	procFindNextVolumeW                                      = modkernel32.NewProc("FindNextVolumeW")
 242	procFindResourceW                                        = modkernel32.NewProc("FindResourceW")
 243	procFindVolumeClose                                      = modkernel32.NewProc("FindVolumeClose")
 244	procFindVolumeMountPointClose                            = modkernel32.NewProc("FindVolumeMountPointClose")
 245	procFlushConsoleInputBuffer                              = modkernel32.NewProc("FlushConsoleInputBuffer")
 246	procFlushFileBuffers                                     = modkernel32.NewProc("FlushFileBuffers")
 247	procFlushViewOfFile                                      = modkernel32.NewProc("FlushViewOfFile")
 248	procFormatMessageW                                       = modkernel32.NewProc("FormatMessageW")
 249	procFreeEnvironmentStringsW                              = modkernel32.NewProc("FreeEnvironmentStringsW")
 250	procFreeLibrary                                          = modkernel32.NewProc("FreeLibrary")
 251	procGenerateConsoleCtrlEvent                             = modkernel32.NewProc("GenerateConsoleCtrlEvent")
 252	procGetACP                                               = modkernel32.NewProc("GetACP")
 253	procGetActiveProcessorCount                              = modkernel32.NewProc("GetActiveProcessorCount")
 254	procGetCommModemStatus                                   = modkernel32.NewProc("GetCommModemStatus")
 255	procGetCommState                                         = modkernel32.NewProc("GetCommState")
 256	procGetCommTimeouts                                      = modkernel32.NewProc("GetCommTimeouts")
 257	procGetCommandLineW                                      = modkernel32.NewProc("GetCommandLineW")
 258	procGetComputerNameExW                                   = modkernel32.NewProc("GetComputerNameExW")
 259	procGetComputerNameW                                     = modkernel32.NewProc("GetComputerNameW")
 260	procGetConsoleCP                                         = modkernel32.NewProc("GetConsoleCP")
 261	procGetConsoleMode                                       = modkernel32.NewProc("GetConsoleMode")
 262	procGetConsoleOutputCP                                   = modkernel32.NewProc("GetConsoleOutputCP")
 263	procGetConsoleScreenBufferInfo                           = modkernel32.NewProc("GetConsoleScreenBufferInfo")
 264	procGetCurrentDirectoryW                                 = modkernel32.NewProc("GetCurrentDirectoryW")
 265	procGetCurrentProcessId                                  = modkernel32.NewProc("GetCurrentProcessId")
 266	procGetCurrentThreadId                                   = modkernel32.NewProc("GetCurrentThreadId")
 267	procGetDiskFreeSpaceExW                                  = modkernel32.NewProc("GetDiskFreeSpaceExW")
 268	procGetDriveTypeW                                        = modkernel32.NewProc("GetDriveTypeW")
 269	procGetEnvironmentStringsW                               = modkernel32.NewProc("GetEnvironmentStringsW")
 270	procGetEnvironmentVariableW                              = modkernel32.NewProc("GetEnvironmentVariableW")
 271	procGetExitCodeProcess                                   = modkernel32.NewProc("GetExitCodeProcess")
 272	procGetFileAttributesExW                                 = modkernel32.NewProc("GetFileAttributesExW")
 273	procGetFileAttributesW                                   = modkernel32.NewProc("GetFileAttributesW")
 274	procGetFileInformationByHandle                           = modkernel32.NewProc("GetFileInformationByHandle")
 275	procGetFileInformationByHandleEx                         = modkernel32.NewProc("GetFileInformationByHandleEx")
 276	procGetFileTime                                          = modkernel32.NewProc("GetFileTime")
 277	procGetFileType                                          = modkernel32.NewProc("GetFileType")
 278	procGetFinalPathNameByHandleW                            = modkernel32.NewProc("GetFinalPathNameByHandleW")
 279	procGetFullPathNameW                                     = modkernel32.NewProc("GetFullPathNameW")
 280	procGetLargePageMinimum                                  = modkernel32.NewProc("GetLargePageMinimum")
 281	procGetLastError                                         = modkernel32.NewProc("GetLastError")
 282	procGetLogicalDriveStringsW                              = modkernel32.NewProc("GetLogicalDriveStringsW")
 283	procGetLogicalDrives                                     = modkernel32.NewProc("GetLogicalDrives")
 284	procGetLongPathNameW                                     = modkernel32.NewProc("GetLongPathNameW")
 285	procGetMaximumProcessorCount                             = modkernel32.NewProc("GetMaximumProcessorCount")
 286	procGetModuleFileNameW                                   = modkernel32.NewProc("GetModuleFileNameW")
 287	procGetModuleHandleExW                                   = modkernel32.NewProc("GetModuleHandleExW")
 288	procGetNamedPipeClientProcessId                          = modkernel32.NewProc("GetNamedPipeClientProcessId")
 289	procGetNamedPipeHandleStateW                             = modkernel32.NewProc("GetNamedPipeHandleStateW")
 290	procGetNamedPipeInfo                                     = modkernel32.NewProc("GetNamedPipeInfo")
 291	procGetNamedPipeServerProcessId                          = modkernel32.NewProc("GetNamedPipeServerProcessId")
 292	procGetNumberOfConsoleInputEvents                        = modkernel32.NewProc("GetNumberOfConsoleInputEvents")
 293	procGetOverlappedResult                                  = modkernel32.NewProc("GetOverlappedResult")
 294	procGetPriorityClass                                     = modkernel32.NewProc("GetPriorityClass")
 295	procGetProcAddress                                       = modkernel32.NewProc("GetProcAddress")
 296	procGetProcessId                                         = modkernel32.NewProc("GetProcessId")
 297	procGetProcessPreferredUILanguages                       = modkernel32.NewProc("GetProcessPreferredUILanguages")
 298	procGetProcessShutdownParameters                         = modkernel32.NewProc("GetProcessShutdownParameters")
 299	procGetProcessTimes                                      = modkernel32.NewProc("GetProcessTimes")
 300	procGetProcessWorkingSetSizeEx                           = modkernel32.NewProc("GetProcessWorkingSetSizeEx")
 301	procGetQueuedCompletionStatus                            = modkernel32.NewProc("GetQueuedCompletionStatus")
 302	procGetShortPathNameW                                    = modkernel32.NewProc("GetShortPathNameW")
 303	procGetStartupInfoW                                      = modkernel32.NewProc("GetStartupInfoW")
 304	procGetStdHandle                                         = modkernel32.NewProc("GetStdHandle")
 305	procGetSystemDirectoryW                                  = modkernel32.NewProc("GetSystemDirectoryW")
 306	procGetSystemPreferredUILanguages                        = modkernel32.NewProc("GetSystemPreferredUILanguages")
 307	procGetSystemTimeAsFileTime                              = modkernel32.NewProc("GetSystemTimeAsFileTime")
 308	procGetSystemTimePreciseAsFileTime                       = modkernel32.NewProc("GetSystemTimePreciseAsFileTime")
 309	procGetSystemWindowsDirectoryW                           = modkernel32.NewProc("GetSystemWindowsDirectoryW")
 310	procGetTempPathW                                         = modkernel32.NewProc("GetTempPathW")
 311	procGetThreadPreferredUILanguages                        = modkernel32.NewProc("GetThreadPreferredUILanguages")
 312	procGetTickCount64                                       = modkernel32.NewProc("GetTickCount64")
 313	procGetTimeZoneInformation                               = modkernel32.NewProc("GetTimeZoneInformation")
 314	procGetUserPreferredUILanguages                          = modkernel32.NewProc("GetUserPreferredUILanguages")
 315	procGetVersion                                           = modkernel32.NewProc("GetVersion")
 316	procGetVolumeInformationByHandleW                        = modkernel32.NewProc("GetVolumeInformationByHandleW")
 317	procGetVolumeInformationW                                = modkernel32.NewProc("GetVolumeInformationW")
 318	procGetVolumeNameForVolumeMountPointW                    = modkernel32.NewProc("GetVolumeNameForVolumeMountPointW")
 319	procGetVolumePathNameW                                   = modkernel32.NewProc("GetVolumePathNameW")
 320	procGetVolumePathNamesForVolumeNameW                     = modkernel32.NewProc("GetVolumePathNamesForVolumeNameW")
 321	procGetWindowsDirectoryW                                 = modkernel32.NewProc("GetWindowsDirectoryW")
 322	procInitializeProcThreadAttributeList                    = modkernel32.NewProc("InitializeProcThreadAttributeList")
 323	procIsProcessorFeaturePresent                            = modkernel32.NewProc("IsProcessorFeaturePresent")
 324	procIsWow64Process                                       = modkernel32.NewProc("IsWow64Process")
 325	procIsWow64Process2                                      = modkernel32.NewProc("IsWow64Process2")
 326	procLoadLibraryExW                                       = modkernel32.NewProc("LoadLibraryExW")
 327	procLoadLibraryW                                         = modkernel32.NewProc("LoadLibraryW")
 328	procLoadResource                                         = modkernel32.NewProc("LoadResource")
 329	procLocalAlloc                                           = modkernel32.NewProc("LocalAlloc")
 330	procLocalFree                                            = modkernel32.NewProc("LocalFree")
 331	procLockFileEx                                           = modkernel32.NewProc("LockFileEx")
 332	procLockResource                                         = modkernel32.NewProc("LockResource")
 333	procMapViewOfFile                                        = modkernel32.NewProc("MapViewOfFile")
 334	procModule32FirstW                                       = modkernel32.NewProc("Module32FirstW")
 335	procModule32NextW                                        = modkernel32.NewProc("Module32NextW")
 336	procMoveFileExW                                          = modkernel32.NewProc("MoveFileExW")
 337	procMoveFileW                                            = modkernel32.NewProc("MoveFileW")
 338	procMultiByteToWideChar                                  = modkernel32.NewProc("MultiByteToWideChar")
 339	procOpenEventW                                           = modkernel32.NewProc("OpenEventW")
 340	procOpenMutexW                                           = modkernel32.NewProc("OpenMutexW")
 341	procOpenProcess                                          = modkernel32.NewProc("OpenProcess")
 342	procOpenThread                                           = modkernel32.NewProc("OpenThread")
 343	procPostQueuedCompletionStatus                           = modkernel32.NewProc("PostQueuedCompletionStatus")
 344	procProcess32FirstW                                      = modkernel32.NewProc("Process32FirstW")
 345	procProcess32NextW                                       = modkernel32.NewProc("Process32NextW")
 346	procProcessIdToSessionId                                 = modkernel32.NewProc("ProcessIdToSessionId")
 347	procPulseEvent                                           = modkernel32.NewProc("PulseEvent")
 348	procPurgeComm                                            = modkernel32.NewProc("PurgeComm")
 349	procQueryDosDeviceW                                      = modkernel32.NewProc("QueryDosDeviceW")
 350	procQueryFullProcessImageNameW                           = modkernel32.NewProc("QueryFullProcessImageNameW")
 351	procQueryInformationJobObject                            = modkernel32.NewProc("QueryInformationJobObject")
 352	procReadConsoleW                                         = modkernel32.NewProc("ReadConsoleW")
 353	procReadDirectoryChangesW                                = modkernel32.NewProc("ReadDirectoryChangesW")
 354	procReadFile                                             = modkernel32.NewProc("ReadFile")
 355	procReadProcessMemory                                    = modkernel32.NewProc("ReadProcessMemory")
 356	procReleaseMutex                                         = modkernel32.NewProc("ReleaseMutex")
 357	procRemoveDirectoryW                                     = modkernel32.NewProc("RemoveDirectoryW")
 358	procRemoveDllDirectory                                   = modkernel32.NewProc("RemoveDllDirectory")
 359	procResetEvent                                           = modkernel32.NewProc("ResetEvent")
 360	procResizePseudoConsole                                  = modkernel32.NewProc("ResizePseudoConsole")
 361	procResumeThread                                         = modkernel32.NewProc("ResumeThread")
 362	procSetCommBreak                                         = modkernel32.NewProc("SetCommBreak")
 363	procSetCommMask                                          = modkernel32.NewProc("SetCommMask")
 364	procSetCommState                                         = modkernel32.NewProc("SetCommState")
 365	procSetCommTimeouts                                      = modkernel32.NewProc("SetCommTimeouts")
 366	procSetConsoleCP                                         = modkernel32.NewProc("SetConsoleCP")
 367	procSetConsoleCursorPosition                             = modkernel32.NewProc("SetConsoleCursorPosition")
 368	procSetConsoleMode                                       = modkernel32.NewProc("SetConsoleMode")
 369	procSetConsoleOutputCP                                   = modkernel32.NewProc("SetConsoleOutputCP")
 370	procSetCurrentDirectoryW                                 = modkernel32.NewProc("SetCurrentDirectoryW")
 371	procSetDefaultDllDirectories                             = modkernel32.NewProc("SetDefaultDllDirectories")
 372	procSetDllDirectoryW                                     = modkernel32.NewProc("SetDllDirectoryW")
 373	procSetEndOfFile                                         = modkernel32.NewProc("SetEndOfFile")
 374	procSetEnvironmentVariableW                              = modkernel32.NewProc("SetEnvironmentVariableW")
 375	procSetErrorMode                                         = modkernel32.NewProc("SetErrorMode")
 376	procSetEvent                                             = modkernel32.NewProc("SetEvent")
 377	procSetFileAttributesW                                   = modkernel32.NewProc("SetFileAttributesW")
 378	procSetFileCompletionNotificationModes                   = modkernel32.NewProc("SetFileCompletionNotificationModes")
 379	procSetFileInformationByHandle                           = modkernel32.NewProc("SetFileInformationByHandle")
 380	procSetFilePointer                                       = modkernel32.NewProc("SetFilePointer")
 381	procSetFileTime                                          = modkernel32.NewProc("SetFileTime")
 382	procSetFileValidData                                     = modkernel32.NewProc("SetFileValidData")
 383	procSetHandleInformation                                 = modkernel32.NewProc("SetHandleInformation")
 384	procSetInformationJobObject                              = modkernel32.NewProc("SetInformationJobObject")
 385	procSetNamedPipeHandleState                              = modkernel32.NewProc("SetNamedPipeHandleState")
 386	procSetPriorityClass                                     = modkernel32.NewProc("SetPriorityClass")
 387	procSetProcessPriorityBoost                              = modkernel32.NewProc("SetProcessPriorityBoost")
 388	procSetProcessShutdownParameters                         = modkernel32.NewProc("SetProcessShutdownParameters")
 389	procSetProcessWorkingSetSizeEx                           = modkernel32.NewProc("SetProcessWorkingSetSizeEx")
 390	procSetStdHandle                                         = modkernel32.NewProc("SetStdHandle")
 391	procSetVolumeLabelW                                      = modkernel32.NewProc("SetVolumeLabelW")
 392	procSetVolumeMountPointW                                 = modkernel32.NewProc("SetVolumeMountPointW")
 393	procSetupComm                                            = modkernel32.NewProc("SetupComm")
 394	procSizeofResource                                       = modkernel32.NewProc("SizeofResource")
 395	procSleepEx                                              = modkernel32.NewProc("SleepEx")
 396	procTerminateJobObject                                   = modkernel32.NewProc("TerminateJobObject")
 397	procTerminateProcess                                     = modkernel32.NewProc("TerminateProcess")
 398	procThread32First                                        = modkernel32.NewProc("Thread32First")
 399	procThread32Next                                         = modkernel32.NewProc("Thread32Next")
 400	procUnlockFileEx                                         = modkernel32.NewProc("UnlockFileEx")
 401	procUnmapViewOfFile                                      = modkernel32.NewProc("UnmapViewOfFile")
 402	procUpdateProcThreadAttribute                            = modkernel32.NewProc("UpdateProcThreadAttribute")
 403	procVirtualAlloc                                         = modkernel32.NewProc("VirtualAlloc")
 404	procVirtualFree                                          = modkernel32.NewProc("VirtualFree")
 405	procVirtualLock                                          = modkernel32.NewProc("VirtualLock")
 406	procVirtualProtect                                       = modkernel32.NewProc("VirtualProtect")
 407	procVirtualProtectEx                                     = modkernel32.NewProc("VirtualProtectEx")
 408	procVirtualQuery                                         = modkernel32.NewProc("VirtualQuery")
 409	procVirtualQueryEx                                       = modkernel32.NewProc("VirtualQueryEx")
 410	procVirtualUnlock                                        = modkernel32.NewProc("VirtualUnlock")
 411	procWTSGetActiveConsoleSessionId                         = modkernel32.NewProc("WTSGetActiveConsoleSessionId")
 412	procWaitCommEvent                                        = modkernel32.NewProc("WaitCommEvent")
 413	procWaitForMultipleObjects                               = modkernel32.NewProc("WaitForMultipleObjects")
 414	procWaitForSingleObject                                  = modkernel32.NewProc("WaitForSingleObject")
 415	procWriteConsoleW                                        = modkernel32.NewProc("WriteConsoleW")
 416	procWriteFile                                            = modkernel32.NewProc("WriteFile")
 417	procWriteProcessMemory                                   = modkernel32.NewProc("WriteProcessMemory")
 418	procAcceptEx                                             = modmswsock.NewProc("AcceptEx")
 419	procGetAcceptExSockaddrs                                 = modmswsock.NewProc("GetAcceptExSockaddrs")
 420	procTransmitFile                                         = modmswsock.NewProc("TransmitFile")
 421	procNetApiBufferFree                                     = modnetapi32.NewProc("NetApiBufferFree")
 422	procNetGetJoinInformation                                = modnetapi32.NewProc("NetGetJoinInformation")
 423	procNetUserEnum                                          = modnetapi32.NewProc("NetUserEnum")
 424	procNetUserGetInfo                                       = modnetapi32.NewProc("NetUserGetInfo")
 425	procNtCreateFile                                         = modntdll.NewProc("NtCreateFile")
 426	procNtCreateNamedPipeFile                                = modntdll.NewProc("NtCreateNamedPipeFile")
 427	procNtQueryInformationProcess                            = modntdll.NewProc("NtQueryInformationProcess")
 428	procNtQuerySystemInformation                             = modntdll.NewProc("NtQuerySystemInformation")
 429	procNtSetInformationFile                                 = modntdll.NewProc("NtSetInformationFile")
 430	procNtSetInformationProcess                              = modntdll.NewProc("NtSetInformationProcess")
 431	procNtSetSystemInformation                               = modntdll.NewProc("NtSetSystemInformation")
 432	procRtlAddFunctionTable                                  = modntdll.NewProc("RtlAddFunctionTable")
 433	procRtlDefaultNpAcl                                      = modntdll.NewProc("RtlDefaultNpAcl")
 434	procRtlDeleteFunctionTable                               = modntdll.NewProc("RtlDeleteFunctionTable")
 435	procRtlDosPathNameToNtPathName_U_WithStatus              = modntdll.NewProc("RtlDosPathNameToNtPathName_U_WithStatus")
 436	procRtlDosPathNameToRelativeNtPathName_U_WithStatus      = modntdll.NewProc("RtlDosPathNameToRelativeNtPathName_U_WithStatus")
 437	procRtlGetCurrentPeb                                     = modntdll.NewProc("RtlGetCurrentPeb")
 438	procRtlGetNtVersionNumbers                               = modntdll.NewProc("RtlGetNtVersionNumbers")
 439	procRtlGetVersion                                        = modntdll.NewProc("RtlGetVersion")
 440	procRtlInitString                                        = modntdll.NewProc("RtlInitString")
 441	procRtlInitUnicodeString                                 = modntdll.NewProc("RtlInitUnicodeString")
 442	procRtlNtStatusToDosErrorNoTeb                           = modntdll.NewProc("RtlNtStatusToDosErrorNoTeb")
 443	procCLSIDFromString                                      = modole32.NewProc("CLSIDFromString")
 444	procCoCreateGuid                                         = modole32.NewProc("CoCreateGuid")
 445	procCoGetObject                                          = modole32.NewProc("CoGetObject")
 446	procCoInitializeEx                                       = modole32.NewProc("CoInitializeEx")
 447	procCoTaskMemFree                                        = modole32.NewProc("CoTaskMemFree")
 448	procCoUninitialize                                       = modole32.NewProc("CoUninitialize")
 449	procStringFromGUID2                                      = modole32.NewProc("StringFromGUID2")
 450	procEnumProcessModules                                   = modpsapi.NewProc("EnumProcessModules")
 451	procEnumProcessModulesEx                                 = modpsapi.NewProc("EnumProcessModulesEx")
 452	procEnumProcesses                                        = modpsapi.NewProc("EnumProcesses")
 453	procGetModuleBaseNameW                                   = modpsapi.NewProc("GetModuleBaseNameW")
 454	procGetModuleFileNameExW                                 = modpsapi.NewProc("GetModuleFileNameExW")
 455	procGetModuleInformation                                 = modpsapi.NewProc("GetModuleInformation")
 456	procQueryWorkingSetEx                                    = modpsapi.NewProc("QueryWorkingSetEx")
 457	procSubscribeServiceChangeNotifications                  = modsechost.NewProc("SubscribeServiceChangeNotifications")
 458	procUnsubscribeServiceChangeNotifications                = modsechost.NewProc("UnsubscribeServiceChangeNotifications")
 459	procGetUserNameExW                                       = modsecur32.NewProc("GetUserNameExW")
 460	procTranslateNameW                                       = modsecur32.NewProc("TranslateNameW")
 461	procSetupDiBuildDriverInfoList                           = modsetupapi.NewProc("SetupDiBuildDriverInfoList")
 462	procSetupDiCallClassInstaller                            = modsetupapi.NewProc("SetupDiCallClassInstaller")
 463	procSetupDiCancelDriverInfoSearch                        = modsetupapi.NewProc("SetupDiCancelDriverInfoSearch")
 464	procSetupDiClassGuidsFromNameExW                         = modsetupapi.NewProc("SetupDiClassGuidsFromNameExW")
 465	procSetupDiClassNameFromGuidExW                          = modsetupapi.NewProc("SetupDiClassNameFromGuidExW")
 466	procSetupDiCreateDeviceInfoListExW                       = modsetupapi.NewProc("SetupDiCreateDeviceInfoListExW")
 467	procSetupDiCreateDeviceInfoW                             = modsetupapi.NewProc("SetupDiCreateDeviceInfoW")
 468	procSetupDiDestroyDeviceInfoList                         = modsetupapi.NewProc("SetupDiDestroyDeviceInfoList")
 469	procSetupDiDestroyDriverInfoList                         = modsetupapi.NewProc("SetupDiDestroyDriverInfoList")
 470	procSetupDiEnumDeviceInfo                                = modsetupapi.NewProc("SetupDiEnumDeviceInfo")
 471	procSetupDiEnumDriverInfoW                               = modsetupapi.NewProc("SetupDiEnumDriverInfoW")
 472	procSetupDiGetClassDevsExW                               = modsetupapi.NewProc("SetupDiGetClassDevsExW")
 473	procSetupDiGetClassInstallParamsW                        = modsetupapi.NewProc("SetupDiGetClassInstallParamsW")
 474	procSetupDiGetDeviceInfoListDetailW                      = modsetupapi.NewProc("SetupDiGetDeviceInfoListDetailW")
 475	procSetupDiGetDeviceInstallParamsW                       = modsetupapi.NewProc("SetupDiGetDeviceInstallParamsW")
 476	procSetupDiGetDeviceInstanceIdW                          = modsetupapi.NewProc("SetupDiGetDeviceInstanceIdW")
 477	procSetupDiGetDevicePropertyW                            = modsetupapi.NewProc("SetupDiGetDevicePropertyW")
 478	procSetupDiGetDeviceRegistryPropertyW                    = modsetupapi.NewProc("SetupDiGetDeviceRegistryPropertyW")
 479	procSetupDiGetDriverInfoDetailW                          = modsetupapi.NewProc("SetupDiGetDriverInfoDetailW")
 480	procSetupDiGetSelectedDevice                             = modsetupapi.NewProc("SetupDiGetSelectedDevice")
 481	procSetupDiGetSelectedDriverW                            = modsetupapi.NewProc("SetupDiGetSelectedDriverW")
 482	procSetupDiOpenDevRegKey                                 = modsetupapi.NewProc("SetupDiOpenDevRegKey")
 483	procSetupDiSetClassInstallParamsW                        = modsetupapi.NewProc("SetupDiSetClassInstallParamsW")
 484	procSetupDiSetDeviceInstallParamsW                       = modsetupapi.NewProc("SetupDiSetDeviceInstallParamsW")
 485	procSetupDiSetDeviceRegistryPropertyW                    = modsetupapi.NewProc("SetupDiSetDeviceRegistryPropertyW")
 486	procSetupDiSetSelectedDevice                             = modsetupapi.NewProc("SetupDiSetSelectedDevice")
 487	procSetupDiSetSelectedDriverW                            = modsetupapi.NewProc("SetupDiSetSelectedDriverW")
 488	procSetupUninstallOEMInfW                                = modsetupapi.NewProc("SetupUninstallOEMInfW")
 489	procCommandLineToArgvW                                   = modshell32.NewProc("CommandLineToArgvW")
 490	procSHGetKnownFolderPath                                 = modshell32.NewProc("SHGetKnownFolderPath")
 491	procShellExecuteW                                        = modshell32.NewProc("ShellExecuteW")
 492	procEnumChildWindows                                     = moduser32.NewProc("EnumChildWindows")
 493	procEnumWindows                                          = moduser32.NewProc("EnumWindows")
 494	procExitWindowsEx                                        = moduser32.NewProc("ExitWindowsEx")
 495	procGetClassNameW                                        = moduser32.NewProc("GetClassNameW")
 496	procGetDesktopWindow                                     = moduser32.NewProc("GetDesktopWindow")
 497	procGetForegroundWindow                                  = moduser32.NewProc("GetForegroundWindow")
 498	procGetGUIThreadInfo                                     = moduser32.NewProc("GetGUIThreadInfo")
 499	procGetKeyboardLayout                                    = moduser32.NewProc("GetKeyboardLayout")
 500	procGetShellWindow                                       = moduser32.NewProc("GetShellWindow")
 501	procGetWindowThreadProcessId                             = moduser32.NewProc("GetWindowThreadProcessId")
 502	procIsWindow                                             = moduser32.NewProc("IsWindow")
 503	procIsWindowUnicode                                      = moduser32.NewProc("IsWindowUnicode")
 504	procIsWindowVisible                                      = moduser32.NewProc("IsWindowVisible")
 505	procLoadKeyboardLayoutW                                  = moduser32.NewProc("LoadKeyboardLayoutW")
 506	procMessageBoxW                                          = moduser32.NewProc("MessageBoxW")
 507	procToUnicodeEx                                          = moduser32.NewProc("ToUnicodeEx")
 508	procUnloadKeyboardLayout                                 = moduser32.NewProc("UnloadKeyboardLayout")
 509	procCreateEnvironmentBlock                               = moduserenv.NewProc("CreateEnvironmentBlock")
 510	procDestroyEnvironmentBlock                              = moduserenv.NewProc("DestroyEnvironmentBlock")
 511	procGetUserProfileDirectoryW                             = moduserenv.NewProc("GetUserProfileDirectoryW")
 512	procGetFileVersionInfoSizeW                              = modversion.NewProc("GetFileVersionInfoSizeW")
 513	procGetFileVersionInfoW                                  = modversion.NewProc("GetFileVersionInfoW")
 514	procVerQueryValueW                                       = modversion.NewProc("VerQueryValueW")
 515	proctimeBeginPeriod                                      = modwinmm.NewProc("timeBeginPeriod")
 516	proctimeEndPeriod                                        = modwinmm.NewProc("timeEndPeriod")
 517	procWinVerifyTrustEx                                     = modwintrust.NewProc("WinVerifyTrustEx")
 518	procFreeAddrInfoW                                        = modws2_32.NewProc("FreeAddrInfoW")
 519	procGetAddrInfoW                                         = modws2_32.NewProc("GetAddrInfoW")
 520	procWSACleanup                                           = modws2_32.NewProc("WSACleanup")
 521	procWSADuplicateSocketW                                  = modws2_32.NewProc("WSADuplicateSocketW")
 522	procWSAEnumProtocolsW                                    = modws2_32.NewProc("WSAEnumProtocolsW")
 523	procWSAGetOverlappedResult                               = modws2_32.NewProc("WSAGetOverlappedResult")
 524	procWSAIoctl                                             = modws2_32.NewProc("WSAIoctl")
 525	procWSALookupServiceBeginW                               = modws2_32.NewProc("WSALookupServiceBeginW")
 526	procWSALookupServiceEnd                                  = modws2_32.NewProc("WSALookupServiceEnd")
 527	procWSALookupServiceNextW                                = modws2_32.NewProc("WSALookupServiceNextW")
 528	procWSARecv                                              = modws2_32.NewProc("WSARecv")
 529	procWSARecvFrom                                          = modws2_32.NewProc("WSARecvFrom")
 530	procWSASend                                              = modws2_32.NewProc("WSASend")
 531	procWSASendTo                                            = modws2_32.NewProc("WSASendTo")
 532	procWSASocketW                                           = modws2_32.NewProc("WSASocketW")
 533	procWSAStartup                                           = modws2_32.NewProc("WSAStartup")
 534	procbind                                                 = modws2_32.NewProc("bind")
 535	procclosesocket                                          = modws2_32.NewProc("closesocket")
 536	procconnect                                              = modws2_32.NewProc("connect")
 537	procgethostbyname                                        = modws2_32.NewProc("gethostbyname")
 538	procgetpeername                                          = modws2_32.NewProc("getpeername")
 539	procgetprotobyname                                       = modws2_32.NewProc("getprotobyname")
 540	procgetservbyname                                        = modws2_32.NewProc("getservbyname")
 541	procgetsockname                                          = modws2_32.NewProc("getsockname")
 542	procgetsockopt                                           = modws2_32.NewProc("getsockopt")
 543	proclisten                                               = modws2_32.NewProc("listen")
 544	procntohs                                                = modws2_32.NewProc("ntohs")
 545	procrecvfrom                                             = modws2_32.NewProc("recvfrom")
 546	procsendto                                               = modws2_32.NewProc("sendto")
 547	procsetsockopt                                           = modws2_32.NewProc("setsockopt")
 548	procshutdown                                             = modws2_32.NewProc("shutdown")
 549	procsocket                                               = modws2_32.NewProc("socket")
 550	procWTSEnumerateSessionsW                                = modwtsapi32.NewProc("WTSEnumerateSessionsW")
 551	procWTSFreeMemory                                        = modwtsapi32.NewProc("WTSFreeMemory")
 552	procWTSQueryUserToken                                    = modwtsapi32.NewProc("WTSQueryUserToken")
 553)
 554
 555func cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) {
 556	r0, _, _ := syscall.SyscallN(procCM_Get_DevNode_Status.Addr(), uintptr(unsafe.Pointer(status)), uintptr(unsafe.Pointer(problemNumber)), uintptr(devInst), uintptr(flags))
 557	ret = CONFIGRET(r0)
 558	return
 559}
 560
 561func cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) {
 562	r0, _, _ := syscall.SyscallN(procCM_Get_Device_Interface_ListW.Addr(), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(flags))
 563	ret = CONFIGRET(r0)
 564	return
 565}
 566
 567func cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) {
 568	r0, _, _ := syscall.SyscallN(procCM_Get_Device_Interface_List_SizeW.Addr(), uintptr(unsafe.Pointer(len)), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(flags))
 569	ret = CONFIGRET(r0)
 570	return
 571}
 572
 573func cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) {
 574	r0, _, _ := syscall.SyscallN(procCM_MapCrToWin32Err.Addr(), uintptr(configRet), uintptr(defaultWin32Error))
 575	ret = Errno(r0)
 576	return
 577}
 578
 579func AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) {
 580	var _p0 uint32
 581	if resetToDefault {
 582		_p0 = 1
 583	}
 584	r1, _, e1 := syscall.SyscallN(procAdjustTokenGroups.Addr(), uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen)))
 585	if r1 == 0 {
 586		err = errnoErr(e1)
 587	}
 588	return
 589}
 590
 591func AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) {
 592	var _p0 uint32
 593	if disableAllPrivileges {
 594		_p0 = 1
 595	}
 596	r1, _, e1 := syscall.SyscallN(procAdjustTokenPrivileges.Addr(), uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen)))
 597	if r1 == 0 {
 598		err = errnoErr(e1)
 599	}
 600	return
 601}
 602
 603func AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) {
 604	r1, _, e1 := syscall.SyscallN(procAllocateAndInitializeSid.Addr(), uintptr(unsafe.Pointer(identAuth)), uintptr(subAuth), uintptr(subAuth0), uintptr(subAuth1), uintptr(subAuth2), uintptr(subAuth3), uintptr(subAuth4), uintptr(subAuth5), uintptr(subAuth6), uintptr(subAuth7), uintptr(unsafe.Pointer(sid)))
 605	if r1 == 0 {
 606		err = errnoErr(e1)
 607	}
 608	return
 609}
 610
 611func buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) {
 612	r0, _, _ := syscall.SyscallN(procBuildSecurityDescriptorW.Addr(), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(countAccessEntries), uintptr(unsafe.Pointer(accessEntries)), uintptr(countAuditEntries), uintptr(unsafe.Pointer(auditEntries)), uintptr(unsafe.Pointer(oldSecurityDescriptor)), uintptr(unsafe.Pointer(sizeNewSecurityDescriptor)), uintptr(unsafe.Pointer(newSecurityDescriptor)))
 613	if r0 != 0 {
 614		ret = syscall.Errno(r0)
 615	}
 616	return
 617}
 618
 619func ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) {
 620	r1, _, e1 := syscall.SyscallN(procChangeServiceConfig2W.Addr(), uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(info)))
 621	if r1 == 0 {
 622		err = errnoErr(e1)
 623	}
 624	return
 625}
 626
 627func ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) {
 628	r1, _, e1 := syscall.SyscallN(procChangeServiceConfigW.Addr(), uintptr(service), uintptr(serviceType), uintptr(startType), uintptr(errorControl), uintptr(unsafe.Pointer(binaryPathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), uintptr(unsafe.Pointer(displayName)))
 629	if r1 == 0 {
 630		err = errnoErr(e1)
 631	}
 632	return
 633}
 634
 635func checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) {
 636	r1, _, e1 := syscall.SyscallN(procCheckTokenMembership.Addr(), uintptr(tokenHandle), uintptr(unsafe.Pointer(sidToCheck)), uintptr(unsafe.Pointer(isMember)))
 637	if r1 == 0 {
 638		err = errnoErr(e1)
 639	}
 640	return
 641}
 642
 643func CloseServiceHandle(handle Handle) (err error) {
 644	r1, _, e1 := syscall.SyscallN(procCloseServiceHandle.Addr(), uintptr(handle))
 645	if r1 == 0 {
 646		err = errnoErr(e1)
 647	}
 648	return
 649}
 650
 651func ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) {
 652	r1, _, e1 := syscall.SyscallN(procControlService.Addr(), uintptr(service), uintptr(control), uintptr(unsafe.Pointer(status)))
 653	if r1 == 0 {
 654		err = errnoErr(e1)
 655	}
 656	return
 657}
 658
 659func convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) {
 660	r1, _, e1 := syscall.SyscallN(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(securityInformation), uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(strLen)))
 661	if r1 == 0 {
 662		err = errnoErr(e1)
 663	}
 664	return
 665}
 666
 667func ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) {
 668	r1, _, e1 := syscall.SyscallN(procConvertSidToStringSidW.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid)))
 669	if r1 == 0 {
 670		err = errnoErr(e1)
 671	}
 672	return
 673}
 674
 675func convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) {
 676	var _p0 *uint16
 677	_p0, err = syscall.UTF16PtrFromString(str)
 678	if err != nil {
 679		return
 680	}
 681	return _convertStringSecurityDescriptorToSecurityDescriptor(_p0, revision, sd, size)
 682}
 683
 684func _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) {
 685	r1, _, e1 := syscall.SyscallN(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size)))
 686	if r1 == 0 {
 687		err = errnoErr(e1)
 688	}
 689	return
 690}
 691
 692func ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) {
 693	r1, _, e1 := syscall.SyscallN(procConvertStringSidToSidW.Addr(), uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid)))
 694	if r1 == 0 {
 695		err = errnoErr(e1)
 696	}
 697	return
 698}
 699
 700func CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) {
 701	r1, _, e1 := syscall.SyscallN(procCopySid.Addr(), uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid)))
 702	if r1 == 0 {
 703		err = errnoErr(e1)
 704	}
 705	return
 706}
 707
 708func CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) {
 709	var _p0 uint32
 710	if inheritHandles {
 711		_p0 = 1
 712	}
 713	r1, _, e1 := syscall.SyscallN(procCreateProcessAsUserW.Addr(), uintptr(token), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)))
 714	if r1 == 0 {
 715		err = errnoErr(e1)
 716	}
 717	return
 718}
 719
 720func CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) {
 721	r0, _, e1 := syscall.SyscallN(procCreateServiceW.Addr(), uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(unsafe.Pointer(displayName)), uintptr(access), uintptr(srvType), uintptr(startType), uintptr(errCtl), uintptr(unsafe.Pointer(pathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)))
 722	handle = Handle(r0)
 723	if handle == 0 {
 724		err = errnoErr(e1)
 725	}
 726	return
 727}
 728
 729func createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) {
 730	r1, _, e1 := syscall.SyscallN(procCreateWellKnownSid.Addr(), uintptr(sidType), uintptr(unsafe.Pointer(domainSid)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sizeSid)))
 731	if r1 == 0 {
 732		err = errnoErr(e1)
 733	}
 734	return
 735}
 736
 737func CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) {
 738	r1, _, e1 := syscall.SyscallN(procCryptAcquireContextW.Addr(), uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags))
 739	if r1 == 0 {
 740		err = errnoErr(e1)
 741	}
 742	return
 743}
 744
 745func CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) {
 746	r1, _, e1 := syscall.SyscallN(procCryptGenRandom.Addr(), uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf)))
 747	if r1 == 0 {
 748		err = errnoErr(e1)
 749	}
 750	return
 751}
 752
 753func CryptReleaseContext(provhandle Handle, flags uint32) (err error) {
 754	r1, _, e1 := syscall.SyscallN(procCryptReleaseContext.Addr(), uintptr(provhandle), uintptr(flags))
 755	if r1 == 0 {
 756		err = errnoErr(e1)
 757	}
 758	return
 759}
 760
 761func DeleteService(service Handle) (err error) {
 762	r1, _, e1 := syscall.SyscallN(procDeleteService.Addr(), uintptr(service))
 763	if r1 == 0 {
 764		err = errnoErr(e1)
 765	}
 766	return
 767}
 768
 769func DeregisterEventSource(handle Handle) (err error) {
 770	r1, _, e1 := syscall.SyscallN(procDeregisterEventSource.Addr(), uintptr(handle))
 771	if r1 == 0 {
 772		err = errnoErr(e1)
 773	}
 774	return
 775}
 776
 777func DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) {
 778	r1, _, e1 := syscall.SyscallN(procDuplicateTokenEx.Addr(), uintptr(existingToken), uintptr(desiredAccess), uintptr(unsafe.Pointer(tokenAttributes)), uintptr(impersonationLevel), uintptr(tokenType), uintptr(unsafe.Pointer(newToken)))
 779	if r1 == 0 {
 780		err = errnoErr(e1)
 781	}
 782	return
 783}
 784
 785func EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) {
 786	r1, _, e1 := syscall.SyscallN(procEnumDependentServicesW.Addr(), uintptr(service), uintptr(activityState), uintptr(unsafe.Pointer(services)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)))
 787	if r1 == 0 {
 788		err = errnoErr(e1)
 789	}
 790	return
 791}
 792
 793func EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) {
 794	r1, _, e1 := syscall.SyscallN(procEnumServicesStatusExW.Addr(), uintptr(mgr), uintptr(infoLevel), uintptr(serviceType), uintptr(serviceState), uintptr(unsafe.Pointer(services)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)), uintptr(unsafe.Pointer(resumeHandle)), uintptr(unsafe.Pointer(groupName)))
 795	if r1 == 0 {
 796		err = errnoErr(e1)
 797	}
 798	return
 799}
 800
 801func EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) {
 802	r0, _, _ := syscall.SyscallN(procEqualSid.Addr(), uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2)))
 803	isEqual = r0 != 0
 804	return
 805}
 806
 807func FreeSid(sid *SID) (err error) {
 808	r1, _, e1 := syscall.SyscallN(procFreeSid.Addr(), uintptr(unsafe.Pointer(sid)))
 809	if r1 != 0 {
 810		err = errnoErr(e1)
 811	}
 812	return
 813}
 814
 815func GetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) {
 816	r1, _, e1 := syscall.SyscallN(procGetAce.Addr(), uintptr(unsafe.Pointer(acl)), uintptr(aceIndex), uintptr(unsafe.Pointer(pAce)))
 817	if r1 == 0 {
 818		err = errnoErr(e1)
 819	}
 820	return
 821}
 822
 823func GetLengthSid(sid *SID) (len uint32) {
 824	r0, _, _ := syscall.SyscallN(procGetLengthSid.Addr(), uintptr(unsafe.Pointer(sid)))
 825	len = uint32(r0)
 826	return
 827}
 828
 829func getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) {
 830	var _p0 *uint16
 831	_p0, ret = syscall.UTF16PtrFromString(objectName)
 832	if ret != nil {
 833		return
 834	}
 835	return _getNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl, sd)
 836}
 837
 838func _getNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) {
 839	r0, _, _ := syscall.SyscallN(procGetNamedSecurityInfoW.Addr(), uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)))
 840	if r0 != 0 {
 841		ret = syscall.Errno(r0)
 842	}
 843	return
 844}
 845
 846func getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) {
 847	r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(control)), uintptr(unsafe.Pointer(revision)))
 848	if r1 == 0 {
 849		err = errnoErr(e1)
 850	}
 851	return
 852}
 853
 854func getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) {
 855	var _p0 uint32
 856	if *daclPresent {
 857		_p0 = 1
 858	}
 859	var _p1 uint32
 860	if *daclDefaulted {
 861		_p1 = 1
 862	}
 863	r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorDacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(&_p1)))
 864	*daclPresent = _p0 != 0
 865	*daclDefaulted = _p1 != 0
 866	if r1 == 0 {
 867		err = errnoErr(e1)
 868	}
 869	return
 870}
 871
 872func getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) {
 873	var _p0 uint32
 874	if *groupDefaulted {
 875		_p0 = 1
 876	}
 877	r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorGroup.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(&_p0)))
 878	*groupDefaulted = _p0 != 0
 879	if r1 == 0 {
 880		err = errnoErr(e1)
 881	}
 882	return
 883}
 884
 885func getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) {
 886	r0, _, _ := syscall.SyscallN(procGetSecurityDescriptorLength.Addr(), uintptr(unsafe.Pointer(sd)))
 887	len = uint32(r0)
 888	return
 889}
 890
 891func getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) {
 892	var _p0 uint32
 893	if *ownerDefaulted {
 894		_p0 = 1
 895	}
 896	r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorOwner.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(&_p0)))
 897	*ownerDefaulted = _p0 != 0
 898	if r1 == 0 {
 899		err = errnoErr(e1)
 900	}
 901	return
 902}
 903
 904func getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) {
 905	r0, _, _ := syscall.SyscallN(procGetSecurityDescriptorRMControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)))
 906	if r0 != 0 {
 907		ret = syscall.Errno(r0)
 908	}
 909	return
 910}
 911
 912func getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) {
 913	var _p0 uint32
 914	if *saclPresent {
 915		_p0 = 1
 916	}
 917	var _p1 uint32
 918	if *saclDefaulted {
 919		_p1 = 1
 920	}
 921	r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorSacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(&_p1)))
 922	*saclPresent = _p0 != 0
 923	*saclDefaulted = _p1 != 0
 924	if r1 == 0 {
 925		err = errnoErr(e1)
 926	}
 927	return
 928}
 929
 930func getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) {
 931	r0, _, _ := syscall.SyscallN(procGetSecurityInfo.Addr(), uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)))
 932	if r0 != 0 {
 933		ret = syscall.Errno(r0)
 934	}
 935	return
 936}
 937
 938func getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) {
 939	r0, _, _ := syscall.SyscallN(procGetSidIdentifierAuthority.Addr(), uintptr(unsafe.Pointer(sid)))
 940	authority = (*SidIdentifierAuthority)(unsafe.Pointer(r0))
 941	return
 942}
 943
 944func getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) {
 945	r0, _, _ := syscall.SyscallN(procGetSidSubAuthority.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(index))
 946	subAuthority = (*uint32)(unsafe.Pointer(r0))
 947	return
 948}
 949
 950func getSidSubAuthorityCount(sid *SID) (count *uint8) {
 951	r0, _, _ := syscall.SyscallN(procGetSidSubAuthorityCount.Addr(), uintptr(unsafe.Pointer(sid)))
 952	count = (*uint8)(unsafe.Pointer(r0))
 953	return
 954}
 955
 956func GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) {
 957	r1, _, e1 := syscall.SyscallN(procGetTokenInformation.Addr(), uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)))
 958	if r1 == 0 {
 959		err = errnoErr(e1)
 960	}
 961	return
 962}
 963
 964func ImpersonateSelf(impersonationlevel uint32) (err error) {
 965	r1, _, e1 := syscall.SyscallN(procImpersonateSelf.Addr(), uintptr(impersonationlevel))
 966	if r1 == 0 {
 967		err = errnoErr(e1)
 968	}
 969	return
 970}
 971
 972func initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) {
 973	r1, _, e1 := syscall.SyscallN(procInitializeSecurityDescriptor.Addr(), uintptr(unsafe.Pointer(absoluteSD)), uintptr(revision))
 974	if r1 == 0 {
 975		err = errnoErr(e1)
 976	}
 977	return
 978}
 979
 980func InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) {
 981	var _p0 uint32
 982	if forceAppsClosed {
 983		_p0 = 1
 984	}
 985	var _p1 uint32
 986	if rebootAfterShutdown {
 987		_p1 = 1
 988	}
 989	r1, _, e1 := syscall.SyscallN(procInitiateSystemShutdownExW.Addr(), uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(message)), uintptr(timeout), uintptr(_p0), uintptr(_p1), uintptr(reason))
 990	if r1 == 0 {
 991		err = errnoErr(e1)
 992	}
 993	return
 994}
 995
 996func isTokenRestricted(tokenHandle Token) (ret bool, err error) {
 997	r0, _, e1 := syscall.SyscallN(procIsTokenRestricted.Addr(), uintptr(tokenHandle))
 998	ret = r0 != 0
 999	if !ret {
1000		err = errnoErr(e1)
1001	}
1002	return
1003}
1004
1005func isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) {
1006	r0, _, _ := syscall.SyscallN(procIsValidSecurityDescriptor.Addr(), uintptr(unsafe.Pointer(sd)))
1007	isValid = r0 != 0
1008	return
1009}
1010
1011func isValidSid(sid *SID) (isValid bool) {
1012	r0, _, _ := syscall.SyscallN(procIsValidSid.Addr(), uintptr(unsafe.Pointer(sid)))
1013	isValid = r0 != 0
1014	return
1015}
1016
1017func isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) {
1018	r0, _, _ := syscall.SyscallN(procIsWellKnownSid.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(sidType))
1019	isWellKnown = r0 != 0
1020	return
1021}
1022
1023func LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) {
1024	r1, _, e1 := syscall.SyscallN(procLookupAccountNameW.Addr(), uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)))
1025	if r1 == 0 {
1026		err = errnoErr(e1)
1027	}
1028	return
1029}
1030
1031func LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) {
1032	r1, _, e1 := syscall.SyscallN(procLookupAccountSidW.Addr(), uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)))
1033	if r1 == 0 {
1034		err = errnoErr(e1)
1035	}
1036	return
1037}
1038
1039func LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) {
1040	r1, _, e1 := syscall.SyscallN(procLookupPrivilegeValueW.Addr(), uintptr(unsafe.Pointer(systemname)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid)))
1041	if r1 == 0 {
1042		err = errnoErr(e1)
1043	}
1044	return
1045}
1046
1047func makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) {
1048	r1, _, e1 := syscall.SyscallN(procMakeAbsoluteSD.Addr(), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(absoluteSDSize)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(daclSize)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(saclSize)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(ownerSize)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(groupSize)))
1049	if r1 == 0 {
1050		err = errnoErr(e1)
1051	}
1052	return
1053}
1054
1055func makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) {
1056	r1, _, e1 := syscall.SyscallN(procMakeSelfRelativeSD.Addr(), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(selfRelativeSDSize)))
1057	if r1 == 0 {
1058		err = errnoErr(e1)
1059	}
1060	return
1061}
1062
1063func NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) {
1064	r0, _, _ := syscall.SyscallN(procNotifyServiceStatusChangeW.Addr(), uintptr(service), uintptr(notifyMask), uintptr(unsafe.Pointer(notifier)))
1065	if r0 != 0 {
1066		ret = syscall.Errno(r0)
1067	}
1068	return
1069}
1070
1071func OpenProcessToken(process Handle, access uint32, token *Token) (err error) {
1072	r1, _, e1 := syscall.SyscallN(procOpenProcessToken.Addr(), uintptr(process), uintptr(access), uintptr(unsafe.Pointer(token)))
1073	if r1 == 0 {
1074		err = errnoErr(e1)
1075	}
1076	return
1077}
1078
1079func OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) {
1080	r0, _, e1 := syscall.SyscallN(procOpenSCManagerW.Addr(), uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(databaseName)), uintptr(access))
1081	handle = Handle(r0)
1082	if handle == 0 {
1083		err = errnoErr(e1)
1084	}
1085	return
1086}
1087
1088func OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) {
1089	r0, _, e1 := syscall.SyscallN(procOpenServiceW.Addr(), uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(access))
1090	handle = Handle(r0)
1091	if handle == 0 {
1092		err = errnoErr(e1)
1093	}
1094	return
1095}
1096
1097func OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) {
1098	var _p0 uint32
1099	if openAsSelf {
1100		_p0 = 1
1101	}
1102	r1, _, e1 := syscall.SyscallN(procOpenThreadToken.Addr(), uintptr(thread), uintptr(access), uintptr(_p0), uintptr(unsafe.Pointer(token)))
1103	if r1 == 0 {
1104		err = errnoErr(e1)
1105	}
1106	return
1107}
1108
1109func QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) {
1110	r1, _, e1 := syscall.SyscallN(procQueryServiceConfig2W.Addr(), uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)))
1111	if r1 == 0 {
1112		err = errnoErr(e1)
1113	}
1114	return
1115}
1116
1117func QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) {
1118	r1, _, e1 := syscall.SyscallN(procQueryServiceConfigW.Addr(), uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)))
1119	if r1 == 0 {
1120		err = errnoErr(e1)
1121	}
1122	return
1123}
1124
1125func QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInfo unsafe.Pointer) (err error) {
1126	err = procQueryServiceDynamicInformation.Find()
1127	if err != nil {
1128		return
1129	}
1130	r1, _, e1 := syscall.SyscallN(procQueryServiceDynamicInformation.Addr(), uintptr(service), uintptr(infoLevel), uintptr(dynamicInfo))
1131	if r1 == 0 {
1132		err = errnoErr(e1)
1133	}
1134	return
1135}
1136
1137func QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) {
1138	r1, _, e1 := syscall.SyscallN(procQueryServiceLockStatusW.Addr(), uintptr(mgr), uintptr(unsafe.Pointer(lockStatus)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)))
1139	if r1 == 0 {
1140		err = errnoErr(e1)
1141	}
1142	return
1143}
1144
1145func QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) {
1146	r1, _, e1 := syscall.SyscallN(procQueryServiceStatus.Addr(), uintptr(service), uintptr(unsafe.Pointer(status)))
1147	if r1 == 0 {
1148		err = errnoErr(e1)
1149	}
1150	return
1151}
1152
1153func QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) {
1154	r1, _, e1 := syscall.SyscallN(procQueryServiceStatusEx.Addr(), uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)))
1155	if r1 == 0 {
1156		err = errnoErr(e1)
1157	}
1158	return
1159}
1160
1161func RegCloseKey(key Handle) (regerrno error) {
1162	r0, _, _ := syscall.SyscallN(procRegCloseKey.Addr(), uintptr(key))
1163	if r0 != 0 {
1164		regerrno = syscall.Errno(r0)
1165	}
1166	return
1167}
1168
1169func RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) {
1170	r0, _, _ := syscall.SyscallN(procRegEnumKeyExW.Addr(), uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(lastWriteTime)))
1171	if r0 != 0 {
1172		regerrno = syscall.Errno(r0)
1173	}
1174	return
1175}
1176
1177func RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) {
1178	var _p0 uint32
1179	if watchSubtree {
1180		_p0 = 1
1181	}
1182	var _p1 uint32
1183	if asynchronous {
1184		_p1 = 1
1185	}
1186	r0, _, _ := syscall.SyscallN(procRegNotifyChangeKeyValue.Addr(), uintptr(key), uintptr(_p0), uintptr(notifyFilter), uintptr(event), uintptr(_p1))
1187	if r0 != 0 {
1188		regerrno = syscall.Errno(r0)
1189	}
1190	return
1191}
1192
1193func RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) {
1194	r0, _, _ := syscall.SyscallN(procRegOpenKeyExW.Addr(), uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result)))
1195	if r0 != 0 {
1196		regerrno = syscall.Errno(r0)
1197	}
1198	return
1199}
1200
1201func RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) {
1202	r0, _, _ := syscall.SyscallN(procRegQueryInfoKeyW.Addr(), uintptr(key), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(subkeysLen)), uintptr(unsafe.Pointer(maxSubkeyLen)), uintptr(unsafe.Pointer(maxClassLen)), uintptr(unsafe.Pointer(valuesLen)), uintptr(unsafe.Pointer(maxValueNameLen)), uintptr(unsafe.Pointer(maxValueLen)), uintptr(unsafe.Pointer(saLen)), uintptr(unsafe.Pointer(lastWriteTime)))
1203	if r0 != 0 {
1204		regerrno = syscall.Errno(r0)
1205	}
1206	return
1207}
1208
1209func RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) {
1210	r0, _, _ := syscall.SyscallN(procRegQueryValueExW.Addr(), uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen)))
1211	if r0 != 0 {
1212		regerrno = syscall.Errno(r0)
1213	}
1214	return
1215}
1216
1217func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) {
1218	r0, _, e1 := syscall.SyscallN(procRegisterEventSourceW.Addr(), uintptr(unsafe.Pointer(uncServerName)), uintptr(unsafe.Pointer(sourceName)))
1219	handle = Handle(r0)
1220	if handle == 0 {
1221		err = errnoErr(e1)
1222	}
1223	return
1224}
1225
1226func RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) {
1227	r0, _, e1 := syscall.SyscallN(procRegisterServiceCtrlHandlerExW.Addr(), uintptr(unsafe.Pointer(serviceName)), uintptr(handlerProc), uintptr(context))
1228	handle = Handle(r0)
1229	if handle == 0 {
1230		err = errnoErr(e1)
1231	}
1232	return
1233}
1234
1235func ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) {
1236	r1, _, e1 := syscall.SyscallN(procReportEventW.Addr(), uintptr(log), uintptr(etype), uintptr(category), uintptr(eventId), uintptr(usrSId), uintptr(numStrings), uintptr(dataSize), uintptr(unsafe.Pointer(strings)), uintptr(unsafe.Pointer(rawData)))
1237	if r1 == 0 {
1238		err = errnoErr(e1)
1239	}
1240	return
1241}
1242
1243func RevertToSelf() (err error) {
1244	r1, _, e1 := syscall.SyscallN(procRevertToSelf.Addr())
1245	if r1 == 0 {
1246		err = errnoErr(e1)
1247	}
1248	return
1249}
1250
1251func setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) {
1252	r0, _, _ := syscall.SyscallN(procSetEntriesInAclW.Addr(), uintptr(countExplicitEntries), uintptr(unsafe.Pointer(explicitEntries)), uintptr(unsafe.Pointer(oldACL)), uintptr(unsafe.Pointer(newACL)))
1253	if r0 != 0 {
1254		ret = syscall.Errno(r0)
1255	}
1256	return
1257}
1258
1259func SetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) {
1260	r1, _, e1 := syscall.SyscallN(procSetKernelObjectSecurity.Addr(), uintptr(handle), uintptr(securityInformation), uintptr(unsafe.Pointer(securityDescriptor)))
1261	if r1 == 0 {
1262		err = errnoErr(e1)
1263	}
1264	return
1265}
1266
1267func SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) {
1268	var _p0 *uint16
1269	_p0, ret = syscall.UTF16PtrFromString(objectName)
1270	if ret != nil {
1271		return
1272	}
1273	return _SetNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl)
1274}
1275
1276func _SetNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) {
1277	r0, _, _ := syscall.SyscallN(procSetNamedSecurityInfoW.Addr(), uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)))
1278	if r0 != 0 {
1279		ret = syscall.Errno(r0)
1280	}
1281	return
1282}
1283
1284func setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) {
1285	r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(controlBitsOfInterest), uintptr(controlBitsToSet))
1286	if r1 == 0 {
1287		err = errnoErr(e1)
1288	}
1289	return
1290}
1291
1292func setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) {
1293	var _p0 uint32
1294	if daclPresent {
1295		_p0 = 1
1296	}
1297	var _p1 uint32
1298	if daclDefaulted {
1299		_p1 = 1
1300	}
1301	r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorDacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(dacl)), uintptr(_p1))
1302	if r1 == 0 {
1303		err = errnoErr(e1)
1304	}
1305	return
1306}
1307
1308func setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) {
1309	var _p0 uint32
1310	if groupDefaulted {
1311		_p0 = 1
1312	}
1313	r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorGroup.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(_p0))
1314	if r1 == 0 {
1315		err = errnoErr(e1)
1316	}
1317	return
1318}
1319
1320func setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) {
1321	var _p0 uint32
1322	if ownerDefaulted {
1323		_p0 = 1
1324	}
1325	r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorOwner.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(_p0))
1326	if r1 == 0 {
1327		err = errnoErr(e1)
1328	}
1329	return
1330}
1331
1332func setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) {
1333	syscall.SyscallN(procSetSecurityDescriptorRMControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)))
1334	return
1335}
1336
1337func setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) {
1338	var _p0 uint32
1339	if saclPresent {
1340		_p0 = 1
1341	}
1342	var _p1 uint32
1343	if saclDefaulted {
1344		_p1 = 1
1345	}
1346	r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorSacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(sacl)), uintptr(_p1))
1347	if r1 == 0 {
1348		err = errnoErr(e1)
1349	}
1350	return
1351}
1352
1353func SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) {
1354	r0, _, _ := syscall.SyscallN(procSetSecurityInfo.Addr(), uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)))
1355	if r0 != 0 {
1356		ret = syscall.Errno(r0)
1357	}
1358	return
1359}
1360
1361func SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) {
1362	r1, _, e1 := syscall.SyscallN(procSetServiceStatus.Addr(), uintptr(service), uintptr(unsafe.Pointer(serviceStatus)))
1363	if r1 == 0 {
1364		err = errnoErr(e1)
1365	}
1366	return
1367}
1368
1369func SetThreadToken(thread *Handle, token Token) (err error) {
1370	r1, _, e1 := syscall.SyscallN(procSetThreadToken.Addr(), uintptr(unsafe.Pointer(thread)), uintptr(token))
1371	if r1 == 0 {
1372		err = errnoErr(e1)
1373	}
1374	return
1375}
1376
1377func SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) {
1378	r1, _, e1 := syscall.SyscallN(procSetTokenInformation.Addr(), uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen))
1379	if r1 == 0 {
1380		err = errnoErr(e1)
1381	}
1382	return
1383}
1384
1385func StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) {
1386	r1, _, e1 := syscall.SyscallN(procStartServiceCtrlDispatcherW.Addr(), uintptr(unsafe.Pointer(serviceTable)))
1387	if r1 == 0 {
1388		err = errnoErr(e1)
1389	}
1390	return
1391}
1392
1393func StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) {
1394	r1, _, e1 := syscall.SyscallN(procStartServiceW.Addr(), uintptr(service), uintptr(numArgs), uintptr(unsafe.Pointer(argVectors)))
1395	if r1 == 0 {
1396		err = errnoErr(e1)
1397	}
1398	return
1399}
1400
1401func CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) {
1402	r1, _, e1 := syscall.SyscallN(procCertAddCertificateContextToStore.Addr(), uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext)))
1403	if r1 == 0 {
1404		err = errnoErr(e1)
1405	}
1406	return
1407}
1408
1409func CertCloseStore(store Handle, flags uint32) (err error) {
1410	r1, _, e1 := syscall.SyscallN(procCertCloseStore.Addr(), uintptr(store), uintptr(flags))
1411	if r1 == 0 {
1412		err = errnoErr(e1)
1413	}
1414	return
1415}
1416
1417func CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) {
1418	r0, _, e1 := syscall.SyscallN(procCertCreateCertificateContext.Addr(), uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen))
1419	context = (*CertContext)(unsafe.Pointer(r0))
1420	if context == nil {
1421		err = errnoErr(e1)
1422	}
1423	return
1424}
1425
1426func CertDeleteCertificateFromStore(certContext *CertContext) (err error) {
1427	r1, _, e1 := syscall.SyscallN(procCertDeleteCertificateFromStore.Addr(), uintptr(unsafe.Pointer(certContext)))
1428	if r1 == 0 {
1429		err = errnoErr(e1)
1430	}
1431	return
1432}
1433
1434func CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) {
1435	r0, _, _ := syscall.SyscallN(procCertDuplicateCertificateContext.Addr(), uintptr(unsafe.Pointer(certContext)))
1436	dupContext = (*CertContext)(unsafe.Pointer(r0))
1437	return
1438}
1439
1440func CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) {
1441	r0, _, e1 := syscall.SyscallN(procCertEnumCertificatesInStore.Addr(), uintptr(store), uintptr(unsafe.Pointer(prevContext)))
1442	context = (*CertContext)(unsafe.Pointer(r0))
1443	if context == nil {
1444		err = errnoErr(e1)
1445	}
1446	return
1447}
1448
1449func CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) {
1450	r0, _, e1 := syscall.SyscallN(procCertFindCertificateInStore.Addr(), uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevCertContext)))
1451	cert = (*CertContext)(unsafe.Pointer(r0))
1452	if cert == nil {
1453		err = errnoErr(e1)
1454	}
1455	return
1456}
1457
1458func CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) {
1459	r0, _, e1 := syscall.SyscallN(procCertFindChainInStore.Addr(), uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevChainContext)))
1460	certchain = (*CertChainContext)(unsafe.Pointer(r0))
1461	if certchain == nil {
1462		err = errnoErr(e1)
1463	}
1464	return
1465}
1466
1467func CertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) {
1468	r0, _, _ := syscall.SyscallN(procCertFindExtension.Addr(), uintptr(unsafe.Pointer(objId)), uintptr(countExtensions), uintptr(unsafe.Pointer(extensions)))
1469	ret = (*CertExtension)(unsafe.Pointer(r0))
1470	return
1471}
1472
1473func CertFreeCertificateChain(ctx *CertChainContext) {
1474	syscall.SyscallN(procCertFreeCertificateChain.Addr(), uintptr(unsafe.Pointer(ctx)))
1475	return
1476}
1477
1478func CertFreeCertificateContext(ctx *CertContext) (err error) {
1479	r1, _, e1 := syscall.SyscallN(procCertFreeCertificateContext.Addr(), uintptr(unsafe.Pointer(ctx)))
1480	if r1 == 0 {
1481		err = errnoErr(e1)
1482	}
1483	return
1484}
1485
1486func CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) {
1487	r1, _, e1 := syscall.SyscallN(procCertGetCertificateChain.Addr(), uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx)))
1488	if r1 == 0 {
1489		err = errnoErr(e1)
1490	}
1491	return
1492}
1493
1494func CertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) {
1495	r0, _, _ := syscall.SyscallN(procCertGetNameStringW.Addr(), uintptr(unsafe.Pointer(certContext)), uintptr(nameType), uintptr(flags), uintptr(typePara), uintptr(unsafe.Pointer(name)), uintptr(size))
1496	chars = uint32(r0)
1497	return
1498}
1499
1500func CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) {
1501	r0, _, e1 := syscall.SyscallN(procCertOpenStore.Addr(), uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para))
1502	handle = Handle(r0)
1503	if handle == 0 {
1504		err = errnoErr(e1)
1505	}
1506	return
1507}
1508
1509func CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) {
1510	r0, _, e1 := syscall.SyscallN(procCertOpenSystemStoreW.Addr(), uintptr(hprov), uintptr(unsafe.Pointer(name)))
1511	store = Handle(r0)
1512	if store == 0 {
1513		err = errnoErr(e1)
1514	}
1515	return
1516}
1517
1518func CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) {
1519	r1, _, e1 := syscall.SyscallN(procCertVerifyCertificateChainPolicy.Addr(), uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status)))
1520	if r1 == 0 {
1521		err = errnoErr(e1)
1522	}
1523	return
1524}
1525
1526func CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) {
1527	var _p0 uint32
1528	if *callerFreeProvOrNCryptKey {
1529		_p0 = 1
1530	}
1531	r1, _, e1 := syscall.SyscallN(procCryptAcquireCertificatePrivateKey.Addr(), uintptr(unsafe.Pointer(cert)), uintptr(flags), uintptr(parameters), uintptr(unsafe.Pointer(cryptProvOrNCryptKey)), uintptr(unsafe.Pointer(keySpec)), uintptr(unsafe.Pointer(&_p0)))
1532	*callerFreeProvOrNCryptKey = _p0 != 0
1533	if r1 == 0 {
1534		err = errnoErr(e1)
1535	}
1536	return
1537}
1538
1539func CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) {
1540	r1, _, e1 := syscall.SyscallN(procCryptDecodeObject.Addr(), uintptr(encodingType), uintptr(unsafe.Pointer(structType)), uintptr(unsafe.Pointer(encodedBytes)), uintptr(lenEncodedBytes), uintptr(flags), uintptr(decoded), uintptr(unsafe.Pointer(decodedLen)))
1541	if r1 == 0 {
1542		err = errnoErr(e1)
1543	}
1544	return
1545}
1546
1547func CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) {
1548	r1, _, e1 := syscall.SyscallN(procCryptProtectData.Addr(), uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)))
1549	if r1 == 0 {
1550		err = errnoErr(e1)
1551	}
1552	return
1553}
1554
1555func CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) {
1556	r1, _, e1 := syscall.SyscallN(procCryptQueryObject.Addr(), uintptr(objectType), uintptr(object), uintptr(expectedContentTypeFlags), uintptr(expectedFormatTypeFlags), uintptr(flags), uintptr(unsafe.Pointer(msgAndCertEncodingType)), uintptr(unsafe.Pointer(contentType)), uintptr(unsafe.Pointer(formatType)), uintptr(unsafe.Pointer(certStore)), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(context)))
1557	if r1 == 0 {
1558		err = errnoErr(e1)
1559	}
1560	return
1561}
1562
1563func CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) {
1564	r1, _, e1 := syscall.SyscallN(procCryptUnprotectData.Addr(), uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)))
1565	if r1 == 0 {
1566		err = errnoErr(e1)
1567	}
1568	return
1569}
1570
1571func PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) {
1572	r0, _, e1 := syscall.SyscallN(procPFXImportCertStore.Addr(), uintptr(unsafe.Pointer(pfx)), uintptr(unsafe.Pointer(password)), uintptr(flags))
1573	store = Handle(r0)
1574	if store == 0 {
1575		err = errnoErr(e1)
1576	}
1577	return
1578}
1579
1580func DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) {
1581	r0, _, _ := syscall.SyscallN(procDnsNameCompare_W.Addr(), uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2)))
1582	same = r0 != 0
1583	return
1584}
1585
1586func DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) {
1587	var _p0 *uint16
1588	_p0, status = syscall.UTF16PtrFromString(name)
1589	if status != nil {
1590		return
1591	}
1592	return _DnsQuery(_p0, qtype, options, extra, qrs, pr)
1593}
1594
1595func _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) {
1596	r0, _, _ := syscall.SyscallN(procDnsQuery_W.Addr(), uintptr(unsafe.Pointer(name)), uintptr(qtype), uintptr(options), uintptr(unsafe.Pointer(extra)), uintptr(unsafe.Pointer(qrs)), uintptr(unsafe.Pointer(pr)))
1597	if r0 != 0 {
1598		status = syscall.Errno(r0)
1599	}
1600	return
1601}
1602
1603func DnsRecordListFree(rl *DNSRecord, freetype uint32) {
1604	syscall.SyscallN(procDnsRecordListFree.Addr(), uintptr(unsafe.Pointer(rl)), uintptr(freetype))
1605	return
1606}
1607
1608func DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) {
1609	r0, _, _ := syscall.SyscallN(procDwmGetWindowAttribute.Addr(), uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size))
1610	if r0 != 0 {
1611		ret = syscall.Errno(r0)
1612	}
1613	return
1614}
1615
1616func DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) {
1617	r0, _, _ := syscall.SyscallN(procDwmSetWindowAttribute.Addr(), uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size))
1618	if r0 != 0 {
1619		ret = syscall.Errno(r0)
1620	}
1621	return
1622}
1623
1624func CancelMibChangeNotify2(notificationHandle Handle) (errcode error) {
1625	r0, _, _ := syscall.SyscallN(procCancelMibChangeNotify2.Addr(), uintptr(notificationHandle))
1626	if r0 != 0 {
1627		errcode = syscall.Errno(r0)
1628	}
1629	return
1630}
1631
1632func FreeMibTable(memory unsafe.Pointer) {
1633	syscall.SyscallN(procFreeMibTable.Addr(), uintptr(memory))
1634	return
1635}
1636
1637func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) {
1638	r0, _, _ := syscall.SyscallN(procGetAdaptersAddresses.Addr(), uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)))
1639	if r0 != 0 {
1640		errcode = syscall.Errno(r0)
1641	}
1642	return
1643}
1644
1645func GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) {
1646	r0, _, _ := syscall.SyscallN(procGetAdaptersInfo.Addr(), uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol)))
1647	if r0 != 0 {
1648		errcode = syscall.Errno(r0)
1649	}
1650	return
1651}
1652
1653func getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) {
1654	r0, _, _ := syscall.SyscallN(procGetBestInterfaceEx.Addr(), uintptr(sockaddr), uintptr(unsafe.Pointer(pdwBestIfIndex)))
1655	if r0 != 0 {
1656		errcode = syscall.Errno(r0)
1657	}
1658	return
1659}
1660
1661func GetIfEntry(pIfRow *MibIfRow) (errcode error) {
1662	r0, _, _ := syscall.SyscallN(procGetIfEntry.Addr(), uintptr(unsafe.Pointer(pIfRow)))
1663	if r0 != 0 {
1664		errcode = syscall.Errno(r0)
1665	}
1666	return
1667}
1668
1669func GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) {
1670	r0, _, _ := syscall.SyscallN(procGetIfEntry2Ex.Addr(), uintptr(level), uintptr(unsafe.Pointer(row)))
1671	if r0 != 0 {
1672		errcode = syscall.Errno(r0)
1673	}
1674	return
1675}
1676
1677func GetIpForwardEntry2(row *MibIpForwardRow2) (errcode error) {
1678	r0, _, _ := syscall.SyscallN(procGetIpForwardEntry2.Addr(), uintptr(unsafe.Pointer(row)))
1679	if r0 != 0 {
1680		errcode = syscall.Errno(r0)
1681	}
1682	return
1683}
1684
1685func GetIpForwardTable2(family uint16, table **MibIpForwardTable2) (errcode error) {
1686	r0, _, _ := syscall.SyscallN(procGetIpForwardTable2.Addr(), uintptr(family), uintptr(unsafe.Pointer(table)))
1687	if r0 != 0 {
1688		errcode = syscall.Errno(r0)
1689	}
1690	return
1691}
1692
1693func GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) {
1694	r0, _, _ := syscall.SyscallN(procGetUnicastIpAddressEntry.Addr(), uintptr(unsafe.Pointer(row)))
1695	if r0 != 0 {
1696		errcode = syscall.Errno(r0)
1697	}
1698	return
1699}
1700
1701func NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) {
1702	var _p0 uint32
1703	if initialNotification {
1704		_p0 = 1
1705	}
1706	r0, _, _ := syscall.SyscallN(procNotifyIpInterfaceChange.Addr(), uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)))
1707	if r0 != 0 {
1708		errcode = syscall.Errno(r0)
1709	}
1710	return
1711}
1712
1713func NotifyRouteChange2(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) {
1714	var _p0 uint32
1715	if initialNotification {
1716		_p0 = 1
1717	}
1718	r0, _, _ := syscall.SyscallN(procNotifyRouteChange2.Addr(), uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)))
1719	if r0 != 0 {
1720		errcode = syscall.Errno(r0)
1721	}
1722	return
1723}
1724
1725func NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) {
1726	var _p0 uint32
1727	if initialNotification {
1728		_p0 = 1
1729	}
1730	r0, _, _ := syscall.SyscallN(procNotifyUnicastIpAddressChange.Addr(), uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)))
1731	if r0 != 0 {
1732		errcode = syscall.Errno(r0)
1733	}
1734	return
1735}
1736
1737func AddDllDirectory(path *uint16) (cookie uintptr, err error) {
1738	r0, _, e1 := syscall.SyscallN(procAddDllDirectory.Addr(), uintptr(unsafe.Pointer(path)))
1739	cookie = uintptr(r0)
1740	if cookie == 0 {
1741		err = errnoErr(e1)
1742	}
1743	return
1744}
1745
1746func AssignProcessToJobObject(job Handle, process Handle) (err error) {
1747	r1, _, e1 := syscall.SyscallN(procAssignProcessToJobObject.Addr(), uintptr(job), uintptr(process))
1748	if r1 == 0 {
1749		err = errnoErr(e1)
1750	}
1751	return
1752}
1753
1754func CancelIo(s Handle) (err error) {
1755	r1, _, e1 := syscall.SyscallN(procCancelIo.Addr(), uintptr(s))
1756	if r1 == 0 {
1757		err = errnoErr(e1)
1758	}
1759	return
1760}
1761
1762func CancelIoEx(s Handle, o *Overlapped) (err error) {
1763	r1, _, e1 := syscall.SyscallN(procCancelIoEx.Addr(), uintptr(s), uintptr(unsafe.Pointer(o)))
1764	if r1 == 0 {
1765		err = errnoErr(e1)
1766	}
1767	return
1768}
1769
1770func ClearCommBreak(handle Handle) (err error) {
1771	r1, _, e1 := syscall.SyscallN(procClearCommBreak.Addr(), uintptr(handle))
1772	if r1 == 0 {
1773		err = errnoErr(e1)
1774	}
1775	return
1776}
1777
1778func ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error) {
1779	r1, _, e1 := syscall.SyscallN(procClearCommError.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpErrors)), uintptr(unsafe.Pointer(lpStat)))
1780	if r1 == 0 {
1781		err = errnoErr(e1)
1782	}
1783	return
1784}
1785
1786func CloseHandle(handle Handle) (err error) {
1787	r1, _, e1 := syscall.SyscallN(procCloseHandle.Addr(), uintptr(handle))
1788	if r1 == 0 {
1789		err = errnoErr(e1)
1790	}
1791	return
1792}
1793
1794func ClosePseudoConsole(console Handle) {
1795	syscall.SyscallN(procClosePseudoConsole.Addr(), uintptr(console))
1796	return
1797}
1798
1799func ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) {
1800	r1, _, e1 := syscall.SyscallN(procConnectNamedPipe.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(overlapped)))
1801	if r1 == 0 {
1802		err = errnoErr(e1)
1803	}
1804	return
1805}
1806
1807func CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) {
1808	r1, _, e1 := syscall.SyscallN(procCreateDirectoryW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa)))
1809	if r1 == 0 {
1810		err = errnoErr(e1)
1811	}
1812	return
1813}
1814
1815func CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) {
1816	r0, _, e1 := syscall.SyscallN(procCreateEventExW.Addr(), uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess))
1817	handle = Handle(r0)
1818	if handle == 0 || e1 == ERROR_ALREADY_EXISTS {
1819		err = errnoErr(e1)
1820	}
1821	return
1822}
1823
1824func CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) {
1825	r0, _, e1 := syscall.SyscallN(procCreateEventW.Addr(), uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name)))
1826	handle = Handle(r0)
1827	if handle == 0 || e1 == ERROR_ALREADY_EXISTS {
1828		err = errnoErr(e1)
1829	}
1830	return
1831}
1832
1833func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) {
1834	r0, _, e1 := syscall.SyscallN(procCreateFileMappingW.Addr(), uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name)))
1835	handle = Handle(r0)
1836	if handle == 0 || e1 == ERROR_ALREADY_EXISTS {
1837		err = errnoErr(e1)
1838	}
1839	return
1840}
1841
1842func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) {
1843	r0, _, e1 := syscall.SyscallN(procCreateFileW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile))
1844	handle = Handle(r0)
1845	if handle == InvalidHandle {
1846		err = errnoErr(e1)
1847	}
1848	return
1849}
1850
1851func CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) {
1852	r1, _, e1 := syscall.SyscallN(procCreateHardLinkW.Addr(), uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved))
1853	if r1&0xff == 0 {
1854		err = errnoErr(e1)
1855	}
1856	return
1857}
1858
1859func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error) {
1860	r0, _, e1 := syscall.SyscallN(procCreateIoCompletionPort.Addr(), uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt))
1861	handle = Handle(r0)
1862	if handle == 0 {
1863		err = errnoErr(e1)
1864	}
1865	return
1866}
1867
1868func CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) {
1869	r0, _, e1 := syscall.SyscallN(procCreateJobObjectW.Addr(), uintptr(unsafe.Pointer(jobAttr)), uintptr(unsafe.Pointer(name)))
1870	handle = Handle(r0)
1871	if handle == 0 {
1872		err = errnoErr(e1)
1873	}
1874	return
1875}
1876
1877func CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) {
1878	r0, _, e1 := syscall.SyscallN(procCreateMutexExW.Addr(), uintptr(unsafe.Pointer(mutexAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess))
1879	handle = Handle(r0)
1880	if handle == 0 || e1 == ERROR_ALREADY_EXISTS {
1881		err = errnoErr(e1)
1882	}
1883	return
1884}
1885
1886func CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) {
1887	var _p0 uint32
1888	if initialOwner {
1889		_p0 = 1
1890	}
1891	r0, _, e1 := syscall.SyscallN(procCreateMutexW.Addr(), uintptr(unsafe.Pointer(mutexAttrs)), uintptr(_p0), uintptr(unsafe.Pointer(name)))
1892	handle = Handle(r0)
1893	if handle == 0 || e1 == ERROR_ALREADY_EXISTS {
1894		err = errnoErr(e1)
1895	}
1896	return
1897}
1898
1899func CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) {
1900	r0, _, e1 := syscall.SyscallN(procCreateNamedPipeW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(pipeMode), uintptr(maxInstances), uintptr(outSize), uintptr(inSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa)))
1901	handle = Handle(r0)
1902	if handle == InvalidHandle {
1903		err = errnoErr(e1)
1904	}
1905	return
1906}
1907
1908func CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) {
1909	r1, _, e1 := syscall.SyscallN(procCreatePipe.Addr(), uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size))
1910	if r1 == 0 {
1911		err = errnoErr(e1)
1912	}
1913	return
1914}
1915
1916func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) {
1917	var _p0 uint32
1918	if inheritHandles {
1919		_p0 = 1
1920	}
1921	r1, _, e1 := syscall.SyscallN(procCreateProcessW.Addr(), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)))
1922	if r1 == 0 {
1923		err = errnoErr(e1)
1924	}
1925	return
1926}
1927
1928func createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) {
1929	r0, _, _ := syscall.SyscallN(procCreatePseudoConsole.Addr(), uintptr(size), uintptr(in), uintptr(out), uintptr(flags), uintptr(unsafe.Pointer(pconsole)))
1930	if r0 != 0 {
1931		hr = syscall.Errno(r0)
1932	}
1933	return
1934}
1935
1936func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) {
1937	r1, _, e1 := syscall.SyscallN(procCreateSymbolicLinkW.Addr(), uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags))
1938	if r1&0xff == 0 {
1939		err = errnoErr(e1)
1940	}
1941	return
1942}
1943
1944func CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) {
1945	r0, _, e1 := syscall.SyscallN(procCreateToolhelp32Snapshot.Addr(), uintptr(flags), uintptr(processId))
1946	handle = Handle(r0)
1947	if handle == InvalidHandle {
1948		err = errnoErr(e1)
1949	}
1950	return
1951}
1952
1953func DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) {
1954	r1, _, e1 := syscall.SyscallN(procDefineDosDeviceW.Addr(), uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)))
1955	if r1 == 0 {
1956		err = errnoErr(e1)
1957	}
1958	return
1959}
1960
1961func DeleteFile(path *uint16) (err error) {
1962	r1, _, e1 := syscall.SyscallN(procDeleteFileW.Addr(), uintptr(unsafe.Pointer(path)))
1963	if r1 == 0 {
1964		err = errnoErr(e1)
1965	}
1966	return
1967}
1968
1969func deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) {
1970	syscall.SyscallN(procDeleteProcThreadAttributeList.Addr(), uintptr(unsafe.Pointer(attrlist)))
1971	return
1972}
1973
1974func DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) {
1975	r1, _, e1 := syscall.SyscallN(procDeleteVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(volumeMountPoint)))
1976	if r1 == 0 {
1977		err = errnoErr(e1)
1978	}
1979	return
1980}
1981
1982func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) {
1983	r1, _, e1 := syscall.SyscallN(procDeviceIoControl.Addr(), uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped)))
1984	if r1 == 0 {
1985		err = errnoErr(e1)
1986	}
1987	return
1988}
1989
1990func DisconnectNamedPipe(pipe Handle) (err error) {
1991	r1, _, e1 := syscall.SyscallN(procDisconnectNamedPipe.Addr(), uintptr(pipe))
1992	if r1 == 0 {
1993		err = errnoErr(e1)
1994	}
1995	return
1996}
1997
1998func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) {
1999	var _p0 uint32
2000	if bInheritHandle {
2001		_p0 = 1
2002	}
2003	r1, _, e1 := syscall.SyscallN(procDuplicateHandle.Addr(), uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions))
2004	if r1 == 0 {
2005		err = errnoErr(e1)
2006	}
2007	return
2008}
2009
2010func EscapeCommFunction(handle Handle, dwFunc uint32) (err error) {
2011	r1, _, e1 := syscall.SyscallN(procEscapeCommFunction.Addr(), uintptr(handle), uintptr(dwFunc))
2012	if r1 == 0 {
2013		err = errnoErr(e1)
2014	}
2015	return
2016}
2017
2018func ExitProcess(exitcode uint32) {
2019	syscall.SyscallN(procExitProcess.Addr(), uintptr(exitcode))
2020	return
2021}
2022
2023func ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) {
2024	r0, _, e1 := syscall.SyscallN(procExpandEnvironmentStringsW.Addr(), uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size))
2025	n = uint32(r0)
2026	if n == 0 {
2027		err = errnoErr(e1)
2028	}
2029	return
2030}
2031
2032func FindClose(handle Handle) (err error) {
2033	r1, _, e1 := syscall.SyscallN(procFindClose.Addr(), uintptr(handle))
2034	if r1 == 0 {
2035		err = errnoErr(e1)
2036	}
2037	return
2038}
2039
2040func FindCloseChangeNotification(handle Handle) (err error) {
2041	r1, _, e1 := syscall.SyscallN(procFindCloseChangeNotification.Addr(), uintptr(handle))
2042	if r1 == 0 {
2043		err = errnoErr(e1)
2044	}
2045	return
2046}
2047
2048func FindFirstChangeNotification(path string, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) {
2049	var _p0 *uint16
2050	_p0, err = syscall.UTF16PtrFromString(path)
2051	if err != nil {
2052		return
2053	}
2054	return _FindFirstChangeNotification(_p0, watchSubtree, notifyFilter)
2055}
2056
2057func _FindFirstChangeNotification(path *uint16, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) {
2058	var _p1 uint32
2059	if watchSubtree {
2060		_p1 = 1
2061	}
2062	r0, _, e1 := syscall.SyscallN(procFindFirstChangeNotificationW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(_p1), uintptr(notifyFilter))
2063	handle = Handle(r0)
2064	if handle == InvalidHandle {
2065		err = errnoErr(e1)
2066	}
2067	return
2068}
2069
2070func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) {
2071	r0, _, e1 := syscall.SyscallN(procFindFirstFileW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)))
2072	handle = Handle(r0)
2073	if handle == InvalidHandle {
2074		err = errnoErr(e1)
2075	}
2076	return
2077}
2078
2079func FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) {
2080	r0, _, e1 := syscall.SyscallN(procFindFirstVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength))
2081	handle = Handle(r0)
2082	if handle == InvalidHandle {
2083		err = errnoErr(e1)
2084	}
2085	return
2086}
2087
2088func FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) {
2089	r0, _, e1 := syscall.SyscallN(procFindFirstVolumeW.Addr(), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength))
2090	handle = Handle(r0)
2091	if handle == InvalidHandle {
2092		err = errnoErr(e1)
2093	}
2094	return
2095}
2096
2097func FindNextChangeNotification(handle Handle) (err error) {
2098	r1, _, e1 := syscall.SyscallN(procFindNextChangeNotification.Addr(), uintptr(handle))
2099	if r1 == 0 {
2100		err = errnoErr(e1)
2101	}
2102	return
2103}
2104
2105func findNextFile1(handle Handle, data *win32finddata1) (err error) {
2106	r1, _, e1 := syscall.SyscallN(procFindNextFileW.Addr(), uintptr(handle), uintptr(unsafe.Pointer(data)))
2107	if r1 == 0 {
2108		err = errnoErr(e1)
2109	}
2110	return
2111}
2112
2113func FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) {
2114	r1, _, e1 := syscall.SyscallN(procFindNextVolumeMountPointW.Addr(), uintptr(findVolumeMountPoint), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength))
2115	if r1 == 0 {
2116		err = errnoErr(e1)
2117	}
2118	return
2119}
2120
2121func FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) {
2122	r1, _, e1 := syscall.SyscallN(procFindNextVolumeW.Addr(), uintptr(findVolume), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength))
2123	if r1 == 0 {
2124		err = errnoErr(e1)
2125	}
2126	return
2127}
2128
2129func findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) {
2130	r0, _, e1 := syscall.SyscallN(procFindResourceW.Addr(), uintptr(module), uintptr(name), uintptr(resType))
2131	resInfo = Handle(r0)
2132	if resInfo == 0 {
2133		err = errnoErr(e1)
2134	}
2135	return
2136}
2137
2138func FindVolumeClose(findVolume Handle) (err error) {
2139	r1, _, e1 := syscall.SyscallN(procFindVolumeClose.Addr(), uintptr(findVolume))
2140	if r1 == 0 {
2141		err = errnoErr(e1)
2142	}
2143	return
2144}
2145
2146func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) {
2147	r1, _, e1 := syscall.SyscallN(procFindVolumeMountPointClose.Addr(), uintptr(findVolumeMountPoint))
2148	if r1 == 0 {
2149		err = errnoErr(e1)
2150	}
2151	return
2152}
2153
2154func FlushConsoleInputBuffer(console Handle) (err error) {
2155	r1, _, e1 := syscall.SyscallN(procFlushConsoleInputBuffer.Addr(), uintptr(console))
2156	if r1 == 0 {
2157		err = errnoErr(e1)
2158	}
2159	return
2160}
2161
2162func FlushFileBuffers(handle Handle) (err error) {
2163	r1, _, e1 := syscall.SyscallN(procFlushFileBuffers.Addr(), uintptr(handle))
2164	if r1 == 0 {
2165		err = errnoErr(e1)
2166	}
2167	return
2168}
2169
2170func FlushViewOfFile(addr uintptr, length uintptr) (err error) {
2171	r1, _, e1 := syscall.SyscallN(procFlushViewOfFile.Addr(), uintptr(addr), uintptr(length))
2172	if r1 == 0 {
2173		err = errnoErr(e1)
2174	}
2175	return
2176}
2177
2178func FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) {
2179	var _p0 *uint16
2180	if len(buf) > 0 {
2181		_p0 = &buf[0]
2182	}
2183	r0, _, e1 := syscall.SyscallN(procFormatMessageW.Addr(), uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args)))
2184	n = uint32(r0)
2185	if n == 0 {
2186		err = errnoErr(e1)
2187	}
2188	return
2189}
2190
2191func FreeEnvironmentStrings(envs *uint16) (err error) {
2192	r1, _, e1 := syscall.SyscallN(procFreeEnvironmentStringsW.Addr(), uintptr(unsafe.Pointer(envs)))
2193	if r1 == 0 {
2194		err = errnoErr(e1)
2195	}
2196	return
2197}
2198
2199func FreeLibrary(handle Handle) (err error) {
2200	r1, _, e1 := syscall.SyscallN(procFreeLibrary.Addr(), uintptr(handle))
2201	if r1 == 0 {
2202		err = errnoErr(e1)
2203	}
2204	return
2205}
2206
2207func GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) {
2208	r1, _, e1 := syscall.SyscallN(procGenerateConsoleCtrlEvent.Addr(), uintptr(ctrlEvent), uintptr(processGroupID))
2209	if r1 == 0 {
2210		err = errnoErr(e1)
2211	}
2212	return
2213}
2214
2215func GetACP() (acp uint32) {
2216	r0, _, _ := syscall.SyscallN(procGetACP.Addr())
2217	acp = uint32(r0)
2218	return
2219}
2220
2221func GetActiveProcessorCount(groupNumber uint16) (ret uint32) {
2222	r0, _, _ := syscall.SyscallN(procGetActiveProcessorCount.Addr(), uintptr(groupNumber))
2223	ret = uint32(r0)
2224	return
2225}
2226
2227func GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) {
2228	r1, _, e1 := syscall.SyscallN(procGetCommModemStatus.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpModemStat)))
2229	if r1 == 0 {
2230		err = errnoErr(e1)
2231	}
2232	return
2233}
2234
2235func GetCommState(handle Handle, lpDCB *DCB) (err error) {
2236	r1, _, e1 := syscall.SyscallN(procGetCommState.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpDCB)))
2237	if r1 == 0 {
2238		err = errnoErr(e1)
2239	}
2240	return
2241}
2242
2243func GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) {
2244	r1, _, e1 := syscall.SyscallN(procGetCommTimeouts.Addr(), uintptr(handle), uintptr(unsafe.Pointer(timeouts)))
2245	if r1 == 0 {
2246		err = errnoErr(e1)
2247	}
2248	return
2249}
2250
2251func GetCommandLine() (cmd *uint16) {
2252	r0, _, _ := syscall.SyscallN(procGetCommandLineW.Addr())
2253	cmd = (*uint16)(unsafe.Pointer(r0))
2254	return
2255}
2256
2257func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) {
2258	r1, _, e1 := syscall.SyscallN(procGetComputerNameExW.Addr(), uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)))
2259	if r1 == 0 {
2260		err = errnoErr(e1)
2261	}
2262	return
2263}
2264
2265func GetComputerName(buf *uint16, n *uint32) (err error) {
2266	r1, _, e1 := syscall.SyscallN(procGetComputerNameW.Addr(), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)))
2267	if r1 == 0 {
2268		err = errnoErr(e1)
2269	}
2270	return
2271}
2272
2273func GetConsoleCP() (cp uint32, err error) {
2274	r0, _, e1 := syscall.SyscallN(procGetConsoleCP.Addr())
2275	cp = uint32(r0)
2276	if cp == 0 {
2277		err = errnoErr(e1)
2278	}
2279	return
2280}
2281
2282func GetConsoleMode(console Handle, mode *uint32) (err error) {
2283	r1, _, e1 := syscall.SyscallN(procGetConsoleMode.Addr(), uintptr(console), uintptr(unsafe.Pointer(mode)))
2284	if r1 == 0 {
2285		err = errnoErr(e1)
2286	}
2287	return
2288}
2289
2290func GetConsoleOutputCP() (cp uint32, err error) {
2291	r0, _, e1 := syscall.SyscallN(procGetConsoleOutputCP.Addr())
2292	cp = uint32(r0)
2293	if cp == 0 {
2294		err = errnoErr(e1)
2295	}
2296	return
2297}
2298
2299func GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) {
2300	r1, _, e1 := syscall.SyscallN(procGetConsoleScreenBufferInfo.Addr(), uintptr(console), uintptr(unsafe.Pointer(info)))
2301	if r1 == 0 {
2302		err = errnoErr(e1)
2303	}
2304	return
2305}
2306
2307func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) {
2308	r0, _, e1 := syscall.SyscallN(procGetCurrentDirectoryW.Addr(), uintptr(buflen), uintptr(unsafe.Pointer(buf)))
2309	n = uint32(r0)
2310	if n == 0 {
2311		err = errnoErr(e1)
2312	}
2313	return
2314}
2315
2316func GetCurrentProcessId() (pid uint32) {
2317	r0, _, _ := syscall.SyscallN(procGetCurrentProcessId.Addr())
2318	pid = uint32(r0)
2319	return
2320}
2321
2322func GetCurrentThreadId() (id uint32) {
2323	r0, _, _ := syscall.SyscallN(procGetCurrentThreadId.Addr())
2324	id = uint32(r0)
2325	return
2326}
2327
2328func GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) {
2329	r1, _, e1 := syscall.SyscallN(procGetDiskFreeSpaceExW.Addr(), uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)))
2330	if r1 == 0 {
2331		err = errnoErr(e1)
2332	}
2333	return
2334}
2335
2336func GetDriveType(rootPathName *uint16) (driveType uint32) {
2337	r0, _, _ := syscall.SyscallN(procGetDriveTypeW.Addr(), uintptr(unsafe.Pointer(rootPathName)))
2338	driveType = uint32(r0)
2339	return
2340}
2341
2342func GetEnvironmentStrings() (envs *uint16, err error) {
2343	r0, _, e1 := syscall.SyscallN(procGetEnvironmentStringsW.Addr())
2344	envs = (*uint16)(unsafe.Pointer(r0))
2345	if envs == nil {
2346		err = errnoErr(e1)
2347	}
2348	return
2349}
2350
2351func GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) {
2352	r0, _, e1 := syscall.SyscallN(procGetEnvironmentVariableW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size))
2353	n = uint32(r0)
2354	if n == 0 {
2355		err = errnoErr(e1)
2356	}
2357	return
2358}
2359
2360func GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) {
2361	r1, _, e1 := syscall.SyscallN(procGetExitCodeProcess.Addr(), uintptr(handle), uintptr(unsafe.Pointer(exitcode)))
2362	if r1 == 0 {
2363		err = errnoErr(e1)
2364	}
2365	return
2366}
2367
2368func GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) {
2369	r1, _, e1 := syscall.SyscallN(procGetFileAttributesExW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info)))
2370	if r1 == 0 {
2371		err = errnoErr(e1)
2372	}
2373	return
2374}
2375
2376func GetFileAttributes(name *uint16) (attrs uint32, err error) {
2377	r0, _, e1 := syscall.SyscallN(procGetFileAttributesW.Addr(), uintptr(unsafe.Pointer(name)))
2378	attrs = uint32(r0)
2379	if attrs == INVALID_FILE_ATTRIBUTES {
2380		err = errnoErr(e1)
2381	}
2382	return
2383}
2384
2385func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) {
2386	r1, _, e1 := syscall.SyscallN(procGetFileInformationByHandle.Addr(), uintptr(handle), uintptr(unsafe.Pointer(data)))
2387	if r1 == 0 {
2388		err = errnoErr(e1)
2389	}
2390	return
2391}
2392
2393func GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) {
2394	r1, _, e1 := syscall.SyscallN(procGetFileInformationByHandleEx.Addr(), uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen))
2395	if r1 == 0 {
2396		err = errnoErr(e1)
2397	}
2398	return
2399}
2400
2401func GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) {
2402	r1, _, e1 := syscall.SyscallN(procGetFileTime.Addr(), uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)))
2403	if r1 == 0 {
2404		err = errnoErr(e1)
2405	}
2406	return
2407}
2408
2409func GetFileType(filehandle Handle) (n uint32, err error) {
2410	r0, _, e1 := syscall.SyscallN(procGetFileType.Addr(), uintptr(filehandle))
2411	n = uint32(r0)
2412	if n == 0 {
2413		err = errnoErr(e1)
2414	}
2415	return
2416}
2417
2418func GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) {
2419	r0, _, e1 := syscall.SyscallN(procGetFinalPathNameByHandleW.Addr(), uintptr(file), uintptr(unsafe.Pointer(filePath)), uintptr(filePathSize), uintptr(flags))
2420	n = uint32(r0)
2421	if n == 0 {
2422		err = errnoErr(e1)
2423	}
2424	return
2425}
2426
2427func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) {
2428	r0, _, e1 := syscall.SyscallN(procGetFullPathNameW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname)))
2429	n = uint32(r0)
2430	if n == 0 {
2431		err = errnoErr(e1)
2432	}
2433	return
2434}
2435
2436func GetLargePageMinimum() (size uintptr) {
2437	r0, _, _ := syscall.SyscallN(procGetLargePageMinimum.Addr())
2438	size = uintptr(r0)
2439	return
2440}
2441
2442func GetLastError() (lasterr error) {
2443	r0, _, _ := syscall.SyscallN(procGetLastError.Addr())
2444	if r0 != 0 {
2445		lasterr = syscall.Errno(r0)
2446	}
2447	return
2448}
2449
2450func GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) {
2451	r0, _, e1 := syscall.SyscallN(procGetLogicalDriveStringsW.Addr(), uintptr(bufferLength), uintptr(unsafe.Pointer(buffer)))
2452	n = uint32(r0)
2453	if n == 0 {
2454		err = errnoErr(e1)
2455	}
2456	return
2457}
2458
2459func GetLogicalDrives() (drivesBitMask uint32, err error) {
2460	r0, _, e1 := syscall.SyscallN(procGetLogicalDrives.Addr())
2461	drivesBitMask = uint32(r0)
2462	if drivesBitMask == 0 {
2463		err = errnoErr(e1)
2464	}
2465	return
2466}
2467
2468func GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) {
2469	r0, _, e1 := syscall.SyscallN(procGetLongPathNameW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen))
2470	n = uint32(r0)
2471	if n == 0 {
2472		err = errnoErr(e1)
2473	}
2474	return
2475}
2476
2477func GetMaximumProcessorCount(groupNumber uint16) (ret uint32) {
2478	r0, _, _ := syscall.SyscallN(procGetMaximumProcessorCount.Addr(), uintptr(groupNumber))
2479	ret = uint32(r0)
2480	return
2481}
2482
2483func GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) {
2484	r0, _, e1 := syscall.SyscallN(procGetModuleFileNameW.Addr(), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size))
2485	n = uint32(r0)
2486	if n == 0 {
2487		err = errnoErr(e1)
2488	}
2489	return
2490}
2491
2492func GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) {
2493	r1, _, e1 := syscall.SyscallN(procGetModuleHandleExW.Addr(), uintptr(flags), uintptr(unsafe.Pointer(moduleName)), uintptr(unsafe.Pointer(module)))
2494	if r1 == 0 {
2495		err = errnoErr(e1)
2496	}
2497	return
2498}
2499
2500func GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err error) {
2501	r1, _, e1 := syscall.SyscallN(procGetNamedPipeClientProcessId.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(clientProcessID)))
2502	if r1 == 0 {
2503		err = errnoErr(e1)
2504	}
2505	return
2506}
2507
2508func GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) {
2509	r1, _, e1 := syscall.SyscallN(procGetNamedPipeHandleStateW.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize))
2510	if r1 == 0 {
2511		err = errnoErr(e1)
2512	}
2513	return
2514}
2515
2516func GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) {
2517	r1, _, e1 := syscall.SyscallN(procGetNamedPipeInfo.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(outSize)), uintptr(unsafe.Pointer(inSize)), uintptr(unsafe.Pointer(maxInstances)))
2518	if r1 == 0 {
2519		err = errnoErr(e1)
2520	}
2521	return
2522}
2523
2524func GetNamedPipeServerProcessId(pipe Handle, serverProcessID *uint32) (err error) {
2525	r1, _, e1 := syscall.SyscallN(procGetNamedPipeServerProcessId.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(serverProcessID)))
2526	if r1 == 0 {
2527		err = errnoErr(e1)
2528	}
2529	return
2530}
2531
2532func GetNumberOfConsoleInputEvents(console Handle, numevents *uint32) (err error) {
2533	r1, _, e1 := syscall.SyscallN(procGetNumberOfConsoleInputEvents.Addr(), uintptr(console), uintptr(unsafe.Pointer(numevents)))
2534	if r1 == 0 {
2535		err = errnoErr(e1)
2536	}
2537	return
2538}
2539
2540func GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) {
2541	var _p0 uint32
2542	if wait {
2543		_p0 = 1
2544	}
2545	r1, _, e1 := syscall.SyscallN(procGetOverlappedResult.Addr(), uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0))
2546	if r1 == 0 {
2547		err = errnoErr(e1)
2548	}
2549	return
2550}
2551
2552func GetPriorityClass(process Handle) (ret uint32, err error) {
2553	r0, _, e1 := syscall.SyscallN(procGetPriorityClass.Addr(), uintptr(process))
2554	ret = uint32(r0)
2555	if ret == 0 {
2556		err = errnoErr(e1)
2557	}
2558	return
2559}
2560
2561func GetProcAddress(module Handle, procname string) (proc uintptr, err error) {
2562	var _p0 *byte
2563	_p0, err = syscall.BytePtrFromString(procname)
2564	if err != nil {
2565		return
2566	}
2567	return _GetProcAddress(module, _p0)
2568}
2569
2570func _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) {
2571	r0, _, e1 := syscall.SyscallN(procGetProcAddress.Addr(), uintptr(module), uintptr(unsafe.Pointer(procname)))
2572	proc = uintptr(r0)
2573	if proc == 0 {
2574		err = errnoErr(e1)
2575	}
2576	return
2577}
2578
2579func GetProcessId(process Handle) (id uint32, err error) {
2580	r0, _, e1 := syscall.SyscallN(procGetProcessId.Addr(), uintptr(process))
2581	id = uint32(r0)
2582	if id == 0 {
2583		err = errnoErr(e1)
2584	}
2585	return
2586}
2587
2588func getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {
2589	r1, _, e1 := syscall.SyscallN(procGetProcessPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)))
2590	if r1 == 0 {
2591		err = errnoErr(e1)
2592	}
2593	return
2594}
2595
2596func GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) {
2597	r1, _, e1 := syscall.SyscallN(procGetProcessShutdownParameters.Addr(), uintptr(unsafe.Pointer(level)), uintptr(unsafe.Pointer(flags)))
2598	if r1 == 0 {
2599		err = errnoErr(e1)
2600	}
2601	return
2602}
2603
2604func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) {
2605	r1, _, e1 := syscall.SyscallN(procGetProcessTimes.Addr(), uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)))
2606	if r1 == 0 {
2607		err = errnoErr(e1)
2608	}
2609	return
2610}
2611
2612func GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) {
2613	syscall.SyscallN(procGetProcessWorkingSetSizeEx.Addr(), uintptr(hProcess), uintptr(unsafe.Pointer(lpMinimumWorkingSetSize)), uintptr(unsafe.Pointer(lpMaximumWorkingSetSize)), uintptr(unsafe.Pointer(flags)))
2614	return
2615}
2616
2617func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error) {
2618	r1, _, e1 := syscall.SyscallN(procGetQueuedCompletionStatus.Addr(), uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout))
2619	if r1 == 0 {
2620		err = errnoErr(e1)
2621	}
2622	return
2623}
2624
2625func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) {
2626	r0, _, e1 := syscall.SyscallN(procGetShortPathNameW.Addr(), uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen))
2627	n = uint32(r0)
2628	if n == 0 {
2629		err = errnoErr(e1)
2630	}
2631	return
2632}
2633
2634func getStartupInfo(startupInfo *StartupInfo) {
2635	syscall.SyscallN(procGetStartupInfoW.Addr(), uintptr(unsafe.Pointer(startupInfo)))
2636	return
2637}
2638
2639func GetStdHandle(stdhandle uint32) (handle Handle, err error) {
2640	r0, _, e1 := syscall.SyscallN(procGetStdHandle.Addr(), uintptr(stdhandle))
2641	handle = Handle(r0)
2642	if handle == InvalidHandle {
2643		err = errnoErr(e1)
2644	}
2645	return
2646}
2647
2648func getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) {
2649	r0, _, e1 := syscall.SyscallN(procGetSystemDirectoryW.Addr(), uintptr(unsafe.Pointer(dir)), uintptr(dirLen))
2650	len = uint32(r0)
2651	if len == 0 {
2652		err = errnoErr(e1)
2653	}
2654	return
2655}
2656
2657func getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {
2658	r1, _, e1 := syscall.SyscallN(procGetSystemPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)))
2659	if r1 == 0 {
2660		err = errnoErr(e1)
2661	}
2662	return
2663}
2664
2665func GetSystemTimeAsFileTime(time *Filetime) {
2666	syscall.SyscallN(procGetSystemTimeAsFileTime.Addr(), uintptr(unsafe.Pointer(time)))
2667	return
2668}
2669
2670func GetSystemTimePreciseAsFileTime(time *Filetime) {
2671	syscall.SyscallN(procGetSystemTimePreciseAsFileTime.Addr(), uintptr(unsafe.Pointer(time)))
2672	return
2673}
2674
2675func getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) {
2676	r0, _, e1 := syscall.SyscallN(procGetSystemWindowsDirectoryW.Addr(), uintptr(unsafe.Pointer(dir)), uintptr(dirLen))
2677	len = uint32(r0)
2678	if len == 0 {
2679		err = errnoErr(e1)
2680	}
2681	return
2682}
2683
2684func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) {
2685	r0, _, e1 := syscall.SyscallN(procGetTempPathW.Addr(), uintptr(buflen), uintptr(unsafe.Pointer(buf)))
2686	n = uint32(r0)
2687	if n == 0 {
2688		err = errnoErr(e1)
2689	}
2690	return
2691}
2692
2693func getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {
2694	r1, _, e1 := syscall.SyscallN(procGetThreadPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)))
2695	if r1 == 0 {
2696		err = errnoErr(e1)
2697	}
2698	return
2699}
2700
2701func getTickCount64() (ms uint64) {
2702	r0, _, _ := syscall.SyscallN(procGetTickCount64.Addr())
2703	ms = uint64(r0)
2704	return
2705}
2706
2707func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) {
2708	r0, _, e1 := syscall.SyscallN(procGetTimeZoneInformation.Addr(), uintptr(unsafe.Pointer(tzi)))
2709	rc = uint32(r0)
2710	if rc == 0xffffffff {
2711		err = errnoErr(e1)
2712	}
2713	return
2714}
2715
2716func getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {
2717	r1, _, e1 := syscall.SyscallN(procGetUserPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)))
2718	if r1 == 0 {
2719		err = errnoErr(e1)
2720	}
2721	return
2722}
2723
2724func GetVersion() (ver uint32, err error) {
2725	r0, _, e1 := syscall.SyscallN(procGetVersion.Addr())
2726	ver = uint32(r0)
2727	if ver == 0 {
2728		err = errnoErr(e1)
2729	}
2730	return
2731}
2732
2733func GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) {
2734	r1, _, e1 := syscall.SyscallN(procGetVolumeInformationByHandleW.Addr(), uintptr(file), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize))
2735	if r1 == 0 {
2736		err = errnoErr(e1)
2737	}
2738	return
2739}
2740
2741func GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) {
2742	r1, _, e1 := syscall.SyscallN(procGetVolumeInformationW.Addr(), uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize))
2743	if r1 == 0 {
2744		err = errnoErr(e1)
2745	}
2746	return
2747}
2748
2749func GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) {
2750	r1, _, e1 := syscall.SyscallN(procGetVolumeNameForVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferlength))
2751	if r1 == 0 {
2752		err = errnoErr(e1)
2753	}
2754	return
2755}
2756
2757func GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) {
2758	r1, _, e1 := syscall.SyscallN(procGetVolumePathNameW.Addr(), uintptr(unsafe.Pointer(fileName)), uintptr(unsafe.Pointer(volumePathName)), uintptr(bufferLength))
2759	if r1 == 0 {
2760		err = errnoErr(e1)
2761	}
2762	return
2763}
2764
2765func GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) {
2766	r1, _, e1 := syscall.SyscallN(procGetVolumePathNamesForVolumeNameW.Addr(), uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength)))
2767	if r1 == 0 {
2768		err = errnoErr(e1)
2769	}
2770	return
2771}
2772
2773func getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) {
2774	r0, _, e1 := syscall.SyscallN(procGetWindowsDirectoryW.Addr(), uintptr(unsafe.Pointer(dir)), uintptr(dirLen))
2775	len = uint32(r0)
2776	if len == 0 {
2777		err = errnoErr(e1)
2778	}
2779	return
2780}
2781
2782func initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) {
2783	r1, _, e1 := syscall.SyscallN(procInitializeProcThreadAttributeList.Addr(), uintptr(unsafe.Pointer(attrlist)), uintptr(attrcount), uintptr(flags), uintptr(unsafe.Pointer(size)))
2784	if r1 == 0 {
2785		err = errnoErr(e1)
2786	}
2787	return
2788}
2789
2790func IsProcessorFeaturePresent(ProcessorFeature uint32) (ret bool) {
2791	r0, _, _ := syscall.SyscallN(procIsProcessorFeaturePresent.Addr(), uintptr(ProcessorFeature))
2792	ret = r0 != 0
2793	return
2794}
2795
2796func IsWow64Process(handle Handle, isWow64 *bool) (err error) {
2797	var _p0 uint32
2798	if *isWow64 {
2799		_p0 = 1
2800	}
2801	r1, _, e1 := syscall.SyscallN(procIsWow64Process.Addr(), uintptr(handle), uintptr(unsafe.Pointer(&_p0)))
2802	*isWow64 = _p0 != 0
2803	if r1 == 0 {
2804		err = errnoErr(e1)
2805	}
2806	return
2807}
2808
2809func IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) {
2810	err = procIsWow64Process2.Find()
2811	if err != nil {
2812		return
2813	}
2814	r1, _, e1 := syscall.SyscallN(procIsWow64Process2.Addr(), uintptr(handle), uintptr(unsafe.Pointer(processMachine)), uintptr(unsafe.Pointer(nativeMachine)))
2815	if r1 == 0 {
2816		err = errnoErr(e1)
2817	}
2818	return
2819}
2820
2821func LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) {
2822	var _p0 *uint16
2823	_p0, err = syscall.UTF16PtrFromString(libname)
2824	if err != nil {
2825		return
2826	}
2827	return _LoadLibraryEx(_p0, zero, flags)
2828}
2829
2830func _LoadLibraryEx(libname *uint16, zero Handle, flags uintptr) (handle Handle, err error) {
2831	r0, _, e1 := syscall.SyscallN(procLoadLibraryExW.Addr(), uintptr(unsafe.Pointer(libname)), uintptr(zero), uintptr(flags))
2832	handle = Handle(r0)
2833	if handle == 0 {
2834		err = errnoErr(e1)
2835	}
2836	return
2837}
2838
2839func LoadLibrary(libname string) (handle Handle, err error) {
2840	var _p0 *uint16
2841	_p0, err = syscall.UTF16PtrFromString(libname)
2842	if err != nil {
2843		return
2844	}
2845	return _LoadLibrary(_p0)
2846}
2847
2848func _LoadLibrary(libname *uint16) (handle Handle, err error) {
2849	r0, _, e1 := syscall.SyscallN(procLoadLibraryW.Addr(), uintptr(unsafe.Pointer(libname)))
2850	handle = Handle(r0)
2851	if handle == 0 {
2852		err = errnoErr(e1)
2853	}
2854	return
2855}
2856
2857func LoadResource(module Handle, resInfo Handle) (resData Handle, err error) {
2858	r0, _, e1 := syscall.SyscallN(procLoadResource.Addr(), uintptr(module), uintptr(resInfo))
2859	resData = Handle(r0)
2860	if resData == 0 {
2861		err = errnoErr(e1)
2862	}
2863	return
2864}
2865
2866func LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) {
2867	r0, _, e1 := syscall.SyscallN(procLocalAlloc.Addr(), uintptr(flags), uintptr(length))
2868	ptr = uintptr(r0)
2869	if ptr == 0 {
2870		err = errnoErr(e1)
2871	}
2872	return
2873}
2874
2875func LocalFree(hmem Handle) (handle Handle, err error) {
2876	r0, _, e1 := syscall.SyscallN(procLocalFree.Addr(), uintptr(hmem))
2877	handle = Handle(r0)
2878	if handle != 0 {
2879		err = errnoErr(e1)
2880	}
2881	return
2882}
2883
2884func LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) {
2885	r1, _, e1 := syscall.SyscallN(procLockFileEx.Addr(), uintptr(file), uintptr(flags), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)))
2886	if r1 == 0 {
2887		err = errnoErr(e1)
2888	}
2889	return
2890}
2891
2892func LockResource(resData Handle) (addr uintptr, err error) {
2893	r0, _, e1 := syscall.SyscallN(procLockResource.Addr(), uintptr(resData))
2894	addr = uintptr(r0)
2895	if addr == 0 {
2896		err = errnoErr(e1)
2897	}
2898	return
2899}
2900
2901func MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) {
2902	r0, _, e1 := syscall.SyscallN(procMapViewOfFile.Addr(), uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length))
2903	addr = uintptr(r0)
2904	if addr == 0 {
2905		err = errnoErr(e1)
2906	}
2907	return
2908}
2909
2910func Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) {
2911	r1, _, e1 := syscall.SyscallN(procModule32FirstW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)))
2912	if r1 == 0 {
2913		err = errnoErr(e1)
2914	}
2915	return
2916}
2917
2918func Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) {
2919	r1, _, e1 := syscall.SyscallN(procModule32NextW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)))
2920	if r1 == 0 {
2921		err = errnoErr(e1)
2922	}
2923	return
2924}
2925
2926func MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) {
2927	r1, _, e1 := syscall.SyscallN(procMoveFileExW.Addr(), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags))
2928	if r1 == 0 {
2929		err = errnoErr(e1)
2930	}
2931	return
2932}
2933
2934func MoveFile(from *uint16, to *uint16) (err error) {
2935	r1, _, e1 := syscall.SyscallN(procMoveFileW.Addr(), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)))
2936	if r1 == 0 {
2937		err = errnoErr(e1)
2938	}
2939	return
2940}
2941
2942func MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) {
2943	r0, _, e1 := syscall.SyscallN(procMultiByteToWideChar.Addr(), uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar))
2944	nwrite = int32(r0)
2945	if nwrite == 0 {
2946		err = errnoErr(e1)
2947	}
2948	return
2949}
2950
2951func OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) {
2952	var _p0 uint32
2953	if inheritHandle {
2954		_p0 = 1
2955	}
2956	r0, _, e1 := syscall.SyscallN(procOpenEventW.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name)))
2957	handle = Handle(r0)
2958	if handle == 0 {
2959		err = errnoErr(e1)
2960	}
2961	return
2962}
2963
2964func OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) {
2965	var _p0 uint32
2966	if inheritHandle {
2967		_p0 = 1
2968	}
2969	r0, _, e1 := syscall.SyscallN(procOpenMutexW.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name)))
2970	handle = Handle(r0)
2971	if handle == 0 {
2972		err = errnoErr(e1)
2973	}
2974	return
2975}
2976
2977func OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) {
2978	var _p0 uint32
2979	if inheritHandle {
2980		_p0 = 1
2981	}
2982	r0, _, e1 := syscall.SyscallN(procOpenProcess.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(processId))
2983	handle = Handle(r0)
2984	if handle == 0 {
2985		err = errnoErr(e1)
2986	}
2987	return
2988}
2989
2990func OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) {
2991	var _p0 uint32
2992	if inheritHandle {
2993		_p0 = 1
2994	}
2995	r0, _, e1 := syscall.SyscallN(procOpenThread.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(threadId))
2996	handle = Handle(r0)
2997	if handle == 0 {
2998		err = errnoErr(e1)
2999	}
3000	return
3001}
3002
3003func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error) {
3004	r1, _, e1 := syscall.SyscallN(procPostQueuedCompletionStatus.Addr(), uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped)))
3005	if r1 == 0 {
3006		err = errnoErr(e1)
3007	}
3008	return
3009}
3010
3011func Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) {
3012	r1, _, e1 := syscall.SyscallN(procProcess32FirstW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)))
3013	if r1 == 0 {
3014		err = errnoErr(e1)
3015	}
3016	return
3017}
3018
3019func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) {
3020	r1, _, e1 := syscall.SyscallN(procProcess32NextW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)))
3021	if r1 == 0 {
3022		err = errnoErr(e1)
3023	}
3024	return
3025}
3026
3027func ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) {
3028	r1, _, e1 := syscall.SyscallN(procProcessIdToSessionId.Addr(), uintptr(pid), uintptr(unsafe.Pointer(sessionid)))
3029	if r1 == 0 {
3030		err = errnoErr(e1)
3031	}
3032	return
3033}
3034
3035func PulseEvent(event Handle) (err error) {
3036	r1, _, e1 := syscall.SyscallN(procPulseEvent.Addr(), uintptr(event))
3037	if r1 == 0 {
3038		err = errnoErr(e1)
3039	}
3040	return
3041}
3042
3043func PurgeComm(handle Handle, dwFlags uint32) (err error) {
3044	r1, _, e1 := syscall.SyscallN(procPurgeComm.Addr(), uintptr(handle), uintptr(dwFlags))
3045	if r1 == 0 {
3046		err = errnoErr(e1)
3047	}
3048	return
3049}
3050
3051func QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) {
3052	r0, _, e1 := syscall.SyscallN(procQueryDosDeviceW.Addr(), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max))
3053	n = uint32(r0)
3054	if n == 0 {
3055		err = errnoErr(e1)
3056	}
3057	return
3058}
3059
3060func QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) {
3061	r1, _, e1 := syscall.SyscallN(procQueryFullProcessImageNameW.Addr(), uintptr(proc), uintptr(flags), uintptr(unsafe.Pointer(exeName)), uintptr(unsafe.Pointer(size)))
3062	if r1 == 0 {
3063		err = errnoErr(e1)
3064	}
3065	return
3066}
3067
3068func QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) {
3069	r1, _, e1 := syscall.SyscallN(procQueryInformationJobObject.Addr(), uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), uintptr(unsafe.Pointer(retlen)))
3070	if r1 == 0 {
3071		err = errnoErr(e1)
3072	}
3073	return
3074}
3075
3076func ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) {
3077	r1, _, e1 := syscall.SyscallN(procReadConsoleW.Addr(), uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl)))
3078	if r1 == 0 {
3079		err = errnoErr(e1)
3080	}
3081	return
3082}
3083
3084func ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) {
3085	var _p0 uint32
3086	if watchSubTree {
3087		_p0 = 1
3088	}
3089	r1, _, e1 := syscall.SyscallN(procReadDirectoryChangesW.Addr(), uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine))
3090	if r1 == 0 {
3091		err = errnoErr(e1)
3092	}
3093	return
3094}
3095
3096func readFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) {
3097	var _p0 *byte
3098	if len(buf) > 0 {
3099		_p0 = &buf[0]
3100	}
3101	r1, _, e1 := syscall.SyscallN(procReadFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)))
3102	if r1 == 0 {
3103		err = errnoErr(e1)
3104	}
3105	return
3106}
3107
3108func ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) {
3109	r1, _, e1 := syscall.SyscallN(procReadProcessMemory.Addr(), uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesRead)))
3110	if r1 == 0 {
3111		err = errnoErr(e1)
3112	}
3113	return
3114}
3115
3116func ReleaseMutex(mutex Handle) (err error) {
3117	r1, _, e1 := syscall.SyscallN(procReleaseMutex.Addr(), uintptr(mutex))
3118	if r1 == 0 {
3119		err = errnoErr(e1)
3120	}
3121	return
3122}
3123
3124func RemoveDirectory(path *uint16) (err error) {
3125	r1, _, e1 := syscall.SyscallN(procRemoveDirectoryW.Addr(), uintptr(unsafe.Pointer(path)))
3126	if r1 == 0 {
3127		err = errnoErr(e1)
3128	}
3129	return
3130}
3131
3132func RemoveDllDirectory(cookie uintptr) (err error) {
3133	r1, _, e1 := syscall.SyscallN(procRemoveDllDirectory.Addr(), uintptr(cookie))
3134	if r1 == 0 {
3135		err = errnoErr(e1)
3136	}
3137	return
3138}
3139
3140func ResetEvent(event Handle) (err error) {
3141	r1, _, e1 := syscall.SyscallN(procResetEvent.Addr(), uintptr(event))
3142	if r1 == 0 {
3143		err = errnoErr(e1)
3144	}
3145	return
3146}
3147
3148func resizePseudoConsole(pconsole Handle, size uint32) (hr error) {
3149	r0, _, _ := syscall.SyscallN(procResizePseudoConsole.Addr(), uintptr(pconsole), uintptr(size))
3150	if r0 != 0 {
3151		hr = syscall.Errno(r0)
3152	}
3153	return
3154}
3155
3156func ResumeThread(thread Handle) (ret uint32, err error) {
3157	r0, _, e1 := syscall.SyscallN(procResumeThread.Addr(), uintptr(thread))
3158	ret = uint32(r0)
3159	if ret == 0xffffffff {
3160		err = errnoErr(e1)
3161	}
3162	return
3163}
3164
3165func SetCommBreak(handle Handle) (err error) {
3166	r1, _, e1 := syscall.SyscallN(procSetCommBreak.Addr(), uintptr(handle))
3167	if r1 == 0 {
3168		err = errnoErr(e1)
3169	}
3170	return
3171}
3172
3173func SetCommMask(handle Handle, dwEvtMask uint32) (err error) {
3174	r1, _, e1 := syscall.SyscallN(procSetCommMask.Addr(), uintptr(handle), uintptr(dwEvtMask))
3175	if r1 == 0 {
3176		err = errnoErr(e1)
3177	}
3178	return
3179}
3180
3181func SetCommState(handle Handle, lpDCB *DCB) (err error) {
3182	r1, _, e1 := syscall.SyscallN(procSetCommState.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpDCB)))
3183	if r1 == 0 {
3184		err = errnoErr(e1)
3185	}
3186	return
3187}
3188
3189func SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) {
3190	r1, _, e1 := syscall.SyscallN(procSetCommTimeouts.Addr(), uintptr(handle), uintptr(unsafe.Pointer(timeouts)))
3191	if r1 == 0 {
3192		err = errnoErr(e1)
3193	}
3194	return
3195}
3196
3197func SetConsoleCP(cp uint32) (err error) {
3198	r1, _, e1 := syscall.SyscallN(procSetConsoleCP.Addr(), uintptr(cp))
3199	if r1 == 0 {
3200		err = errnoErr(e1)
3201	}
3202	return
3203}
3204
3205func setConsoleCursorPosition(console Handle, position uint32) (err error) {
3206	r1, _, e1 := syscall.SyscallN(procSetConsoleCursorPosition.Addr(), uintptr(console), uintptr(position))
3207	if r1 == 0 {
3208		err = errnoErr(e1)
3209	}
3210	return
3211}
3212
3213func SetConsoleMode(console Handle, mode uint32) (err error) {
3214	r1, _, e1 := syscall.SyscallN(procSetConsoleMode.Addr(), uintptr(console), uintptr(mode))
3215	if r1 == 0 {
3216		err = errnoErr(e1)
3217	}
3218	return
3219}
3220
3221func SetConsoleOutputCP(cp uint32) (err error) {
3222	r1, _, e1 := syscall.SyscallN(procSetConsoleOutputCP.Addr(), uintptr(cp))
3223	if r1 == 0 {
3224		err = errnoErr(e1)
3225	}
3226	return
3227}
3228
3229func SetCurrentDirectory(path *uint16) (err error) {
3230	r1, _, e1 := syscall.SyscallN(procSetCurrentDirectoryW.Addr(), uintptr(unsafe.Pointer(path)))
3231	if r1 == 0 {
3232		err = errnoErr(e1)
3233	}
3234	return
3235}
3236
3237func SetDefaultDllDirectories(directoryFlags uint32) (err error) {
3238	r1, _, e1 := syscall.SyscallN(procSetDefaultDllDirectories.Addr(), uintptr(directoryFlags))
3239	if r1 == 0 {
3240		err = errnoErr(e1)
3241	}
3242	return
3243}
3244
3245func SetDllDirectory(path string) (err error) {
3246	var _p0 *uint16
3247	_p0, err = syscall.UTF16PtrFromString(path)
3248	if err != nil {
3249		return
3250	}
3251	return _SetDllDirectory(_p0)
3252}
3253
3254func _SetDllDirectory(path *uint16) (err error) {
3255	r1, _, e1 := syscall.SyscallN(procSetDllDirectoryW.Addr(), uintptr(unsafe.Pointer(path)))
3256	if r1 == 0 {
3257		err = errnoErr(e1)
3258	}
3259	return
3260}
3261
3262func SetEndOfFile(handle Handle) (err error) {
3263	r1, _, e1 := syscall.SyscallN(procSetEndOfFile.Addr(), uintptr(handle))
3264	if r1 == 0 {
3265		err = errnoErr(e1)
3266	}
3267	return
3268}
3269
3270func SetEnvironmentVariable(name *uint16, value *uint16) (err error) {
3271	r1, _, e1 := syscall.SyscallN(procSetEnvironmentVariableW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)))
3272	if r1 == 0 {
3273		err = errnoErr(e1)
3274	}
3275	return
3276}
3277
3278func SetErrorMode(mode uint32) (ret uint32) {
3279	r0, _, _ := syscall.SyscallN(procSetErrorMode.Addr(), uintptr(mode))
3280	ret = uint32(r0)
3281	return
3282}
3283
3284func SetEvent(event Handle) (err error) {
3285	r1, _, e1 := syscall.SyscallN(procSetEvent.Addr(), uintptr(event))
3286	if r1 == 0 {
3287		err = errnoErr(e1)
3288	}
3289	return
3290}
3291
3292func SetFileAttributes(name *uint16, attrs uint32) (err error) {
3293	r1, _, e1 := syscall.SyscallN(procSetFileAttributesW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(attrs))
3294	if r1 == 0 {
3295		err = errnoErr(e1)
3296	}
3297	return
3298}
3299
3300func SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) {
3301	r1, _, e1 := syscall.SyscallN(procSetFileCompletionNotificationModes.Addr(), uintptr(handle), uintptr(flags))
3302	if r1 == 0 {
3303		err = errnoErr(e1)
3304	}
3305	return
3306}
3307
3308func SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error) {
3309	r1, _, e1 := syscall.SyscallN(procSetFileInformationByHandle.Addr(), uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen))
3310	if r1 == 0 {
3311		err = errnoErr(e1)
3312	}
3313	return
3314}
3315
3316func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) {
3317	r0, _, e1 := syscall.SyscallN(procSetFilePointer.Addr(), uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence))
3318	newlowoffset = uint32(r0)
3319	if newlowoffset == 0xffffffff {
3320		err = errnoErr(e1)
3321	}
3322	return
3323}
3324
3325func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) {
3326	r1, _, e1 := syscall.SyscallN(procSetFileTime.Addr(), uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)))
3327	if r1 == 0 {
3328		err = errnoErr(e1)
3329	}
3330	return
3331}
3332
3333func SetFileValidData(handle Handle, validDataLength int64) (err error) {
3334	r1, _, e1 := syscall.SyscallN(procSetFileValidData.Addr(), uintptr(handle), uintptr(validDataLength))
3335	if r1 == 0 {
3336		err = errnoErr(e1)
3337	}
3338	return
3339}
3340
3341func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) {
3342	r1, _, e1 := syscall.SyscallN(procSetHandleInformation.Addr(), uintptr(handle), uintptr(mask), uintptr(flags))
3343	if r1 == 0 {
3344		err = errnoErr(e1)
3345	}
3346	return
3347}
3348
3349func SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) {
3350	r0, _, e1 := syscall.SyscallN(procSetInformationJobObject.Addr(), uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength))
3351	ret = int(r0)
3352	if ret == 0 {
3353		err = errnoErr(e1)
3354	}
3355	return
3356}
3357
3358func SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) {
3359	r1, _, e1 := syscall.SyscallN(procSetNamedPipeHandleState.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)))
3360	if r1 == 0 {
3361		err = errnoErr(e1)
3362	}
3363	return
3364}
3365
3366func SetPriorityClass(process Handle, priorityClass uint32) (err error) {
3367	r1, _, e1 := syscall.SyscallN(procSetPriorityClass.Addr(), uintptr(process), uintptr(priorityClass))
3368	if r1 == 0 {
3369		err = errnoErr(e1)
3370	}
3371	return
3372}
3373
3374func SetProcessPriorityBoost(process Handle, disable bool) (err error) {
3375	var _p0 uint32
3376	if disable {
3377		_p0 = 1
3378	}
3379	r1, _, e1 := syscall.SyscallN(procSetProcessPriorityBoost.Addr(), uintptr(process), uintptr(_p0))
3380	if r1 == 0 {
3381		err = errnoErr(e1)
3382	}
3383	return
3384}
3385
3386func SetProcessShutdownParameters(level uint32, flags uint32) (err error) {
3387	r1, _, e1 := syscall.SyscallN(procSetProcessShutdownParameters.Addr(), uintptr(level), uintptr(flags))
3388	if r1 == 0 {
3389		err = errnoErr(e1)
3390	}
3391	return
3392}
3393
3394func SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) {
3395	r1, _, e1 := syscall.SyscallN(procSetProcessWorkingSetSizeEx.Addr(), uintptr(hProcess), uintptr(dwMinimumWorkingSetSize), uintptr(dwMaximumWorkingSetSize), uintptr(flags))
3396	if r1 == 0 {
3397		err = errnoErr(e1)
3398	}
3399	return
3400}
3401
3402func SetStdHandle(stdhandle uint32, handle Handle) (err error) {
3403	r1, _, e1 := syscall.SyscallN(procSetStdHandle.Addr(), uintptr(stdhandle), uintptr(handle))
3404	if r1 == 0 {
3405		err = errnoErr(e1)
3406	}
3407	return
3408}
3409
3410func SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) {
3411	r1, _, e1 := syscall.SyscallN(procSetVolumeLabelW.Addr(), uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName)))
3412	if r1 == 0 {
3413		err = errnoErr(e1)
3414	}
3415	return
3416}
3417
3418func SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) {
3419	r1, _, e1 := syscall.SyscallN(procSetVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)))
3420	if r1 == 0 {
3421		err = errnoErr(e1)
3422	}
3423	return
3424}
3425
3426func SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) {
3427	r1, _, e1 := syscall.SyscallN(procSetupComm.Addr(), uintptr(handle), uintptr(dwInQueue), uintptr(dwOutQueue))
3428	if r1 == 0 {
3429		err = errnoErr(e1)
3430	}
3431	return
3432}
3433
3434func SizeofResource(module Handle, resInfo Handle) (size uint32, err error) {
3435	r0, _, e1 := syscall.SyscallN(procSizeofResource.Addr(), uintptr(module), uintptr(resInfo))
3436	size = uint32(r0)
3437	if size == 0 {
3438		err = errnoErr(e1)
3439	}
3440	return
3441}
3442
3443func SleepEx(milliseconds uint32, alertable bool) (ret uint32) {
3444	var _p0 uint32
3445	if alertable {
3446		_p0 = 1
3447	}
3448	r0, _, _ := syscall.SyscallN(procSleepEx.Addr(), uintptr(milliseconds), uintptr(_p0))
3449	ret = uint32(r0)
3450	return
3451}
3452
3453func TerminateJobObject(job Handle, exitCode uint32) (err error) {
3454	r1, _, e1 := syscall.SyscallN(procTerminateJobObject.Addr(), uintptr(job), uintptr(exitCode))
3455	if r1 == 0 {
3456		err = errnoErr(e1)
3457	}
3458	return
3459}
3460
3461func TerminateProcess(handle Handle, exitcode uint32) (err error) {
3462	r1, _, e1 := syscall.SyscallN(procTerminateProcess.Addr(), uintptr(handle), uintptr(exitcode))
3463	if r1 == 0 {
3464		err = errnoErr(e1)
3465	}
3466	return
3467}
3468
3469func Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) {
3470	r1, _, e1 := syscall.SyscallN(procThread32First.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)))
3471	if r1 == 0 {
3472		err = errnoErr(e1)
3473	}
3474	return
3475}
3476
3477func Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) {
3478	r1, _, e1 := syscall.SyscallN(procThread32Next.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)))
3479	if r1 == 0 {
3480		err = errnoErr(e1)
3481	}
3482	return
3483}
3484
3485func UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) {
3486	r1, _, e1 := syscall.SyscallN(procUnlockFileEx.Addr(), uintptr(file), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)))
3487	if r1 == 0 {
3488		err = errnoErr(e1)
3489	}
3490	return
3491}
3492
3493func UnmapViewOfFile(addr uintptr) (err error) {
3494	r1, _, e1 := syscall.SyscallN(procUnmapViewOfFile.Addr(), uintptr(addr))
3495	if r1 == 0 {
3496		err = errnoErr(e1)
3497	}
3498	return
3499}
3500
3501func updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) {
3502	r1, _, e1 := syscall.SyscallN(procUpdateProcThreadAttribute.Addr(), uintptr(unsafe.Pointer(attrlist)), uintptr(flags), uintptr(attr), uintptr(value), uintptr(size), uintptr(prevvalue), uintptr(unsafe.Pointer(returnedsize)))
3503	if r1 == 0 {
3504		err = errnoErr(e1)
3505	}
3506	return
3507}
3508
3509func VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) {
3510	r0, _, e1 := syscall.SyscallN(procVirtualAlloc.Addr(), uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect))
3511	value = uintptr(r0)
3512	if value == 0 {
3513		err = errnoErr(e1)
3514	}
3515	return
3516}
3517
3518func VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) {
3519	r1, _, e1 := syscall.SyscallN(procVirtualFree.Addr(), uintptr(address), uintptr(size), uintptr(freetype))
3520	if r1 == 0 {
3521		err = errnoErr(e1)
3522	}
3523	return
3524}
3525
3526func VirtualLock(addr uintptr, length uintptr) (err error) {
3527	r1, _, e1 := syscall.SyscallN(procVirtualLock.Addr(), uintptr(addr), uintptr(length))
3528	if r1 == 0 {
3529		err = errnoErr(e1)
3530	}
3531	return
3532}
3533
3534func VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) {
3535	r1, _, e1 := syscall.SyscallN(procVirtualProtect.Addr(), uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect)))
3536	if r1 == 0 {
3537		err = errnoErr(e1)
3538	}
3539	return
3540}
3541
3542func VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) {
3543	r1, _, e1 := syscall.SyscallN(procVirtualProtectEx.Addr(), uintptr(process), uintptr(address), uintptr(size), uintptr(newProtect), uintptr(unsafe.Pointer(oldProtect)))
3544	if r1 == 0 {
3545		err = errnoErr(e1)
3546	}
3547	return
3548}
3549
3550func VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) {
3551	r1, _, e1 := syscall.SyscallN(procVirtualQuery.Addr(), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length))
3552	if r1 == 0 {
3553		err = errnoErr(e1)
3554	}
3555	return
3556}
3557
3558func VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) {
3559	r1, _, e1 := syscall.SyscallN(procVirtualQueryEx.Addr(), uintptr(process), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length))
3560	if r1 == 0 {
3561		err = errnoErr(e1)
3562	}
3563	return
3564}
3565
3566func VirtualUnlock(addr uintptr, length uintptr) (err error) {
3567	r1, _, e1 := syscall.SyscallN(procVirtualUnlock.Addr(), uintptr(addr), uintptr(length))
3568	if r1 == 0 {
3569		err = errnoErr(e1)
3570	}
3571	return
3572}
3573
3574func WTSGetActiveConsoleSessionId() (sessionID uint32) {
3575	r0, _, _ := syscall.SyscallN(procWTSGetActiveConsoleSessionId.Addr())
3576	sessionID = uint32(r0)
3577	return
3578}
3579
3580func WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) {
3581	r1, _, e1 := syscall.SyscallN(procWaitCommEvent.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpEvtMask)), uintptr(unsafe.Pointer(lpOverlapped)))
3582	if r1 == 0 {
3583		err = errnoErr(e1)
3584	}
3585	return
3586}
3587
3588func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) {
3589	var _p0 uint32
3590	if waitAll {
3591		_p0 = 1
3592	}
3593	r0, _, e1 := syscall.SyscallN(procWaitForMultipleObjects.Addr(), uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds))
3594	event = uint32(r0)
3595	if event == 0xffffffff {
3596		err = errnoErr(e1)
3597	}
3598	return
3599}
3600
3601func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) {
3602	r0, _, e1 := syscall.SyscallN(procWaitForSingleObject.Addr(), uintptr(handle), uintptr(waitMilliseconds))
3603	event = uint32(r0)
3604	if event == 0xffffffff {
3605		err = errnoErr(e1)
3606	}
3607	return
3608}
3609
3610func WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) {
3611	r1, _, e1 := syscall.SyscallN(procWriteConsoleW.Addr(), uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)))
3612	if r1 == 0 {
3613		err = errnoErr(e1)
3614	}
3615	return
3616}
3617
3618func writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) {
3619	var _p0 *byte
3620	if len(buf) > 0 {
3621		_p0 = &buf[0]
3622	}
3623	r1, _, e1 := syscall.SyscallN(procWriteFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)))
3624	if r1 == 0 {
3625		err = errnoErr(e1)
3626	}
3627	return
3628}
3629
3630func WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) {
3631	r1, _, e1 := syscall.SyscallN(procWriteProcessMemory.Addr(), uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesWritten)))
3632	if r1 == 0 {
3633		err = errnoErr(e1)
3634	}
3635	return
3636}
3637
3638func AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) {
3639	r1, _, e1 := syscall.SyscallN(procAcceptEx.Addr(), uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped)))
3640	if r1 == 0 {
3641		err = errnoErr(e1)
3642	}
3643	return
3644}
3645
3646func GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) {
3647	syscall.SyscallN(procGetAcceptExSockaddrs.Addr(), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(lrsa)), uintptr(unsafe.Pointer(lrsalen)), uintptr(unsafe.Pointer(rrsa)), uintptr(unsafe.Pointer(rrsalen)))
3648	return
3649}
3650
3651func TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) {
3652	r1, _, e1 := syscall.SyscallN(procTransmitFile.Addr(), uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags))
3653	if r1 == 0 {
3654		err = errnoErr(e1)
3655	}
3656	return
3657}
3658
3659func NetApiBufferFree(buf *byte) (neterr error) {
3660	r0, _, _ := syscall.SyscallN(procNetApiBufferFree.Addr(), uintptr(unsafe.Pointer(buf)))
3661	if r0 != 0 {
3662		neterr = syscall.Errno(r0)
3663	}
3664	return
3665}
3666
3667func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) {
3668	r0, _, _ := syscall.SyscallN(procNetGetJoinInformation.Addr(), uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType)))
3669	if r0 != 0 {
3670		neterr = syscall.Errno(r0)
3671	}
3672	return
3673}
3674
3675func NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) {
3676	r0, _, _ := syscall.SyscallN(procNetUserEnum.Addr(), uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(filter), uintptr(unsafe.Pointer(buf)), uintptr(prefMaxLen), uintptr(unsafe.Pointer(entriesRead)), uintptr(unsafe.Pointer(totalEntries)), uintptr(unsafe.Pointer(resumeHandle)))
3677	if r0 != 0 {
3678		neterr = syscall.Errno(r0)
3679	}
3680	return
3681}
3682
3683func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) {
3684	r0, _, _ := syscall.SyscallN(procNetUserGetInfo.Addr(), uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)))
3685	if r0 != 0 {
3686		neterr = syscall.Errno(r0)
3687	}
3688	return
3689}
3690
3691func NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) {
3692	r0, _, _ := syscall.SyscallN(procNtCreateFile.Addr(), uintptr(unsafe.Pointer(handle)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(allocationSize)), uintptr(attributes), uintptr(share), uintptr(disposition), uintptr(options), uintptr(eabuffer), uintptr(ealength))
3693	if r0 != 0 {
3694		ntstatus = NTStatus(r0)
3695	}
3696	return
3697}
3698
3699func NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) {
3700	r0, _, _ := syscall.SyscallN(procNtCreateNamedPipeFile.Addr(), uintptr(unsafe.Pointer(pipe)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(share), uintptr(disposition), uintptr(options), uintptr(typ), uintptr(readMode), uintptr(completionMode), uintptr(maxInstances), uintptr(inboundQuota), uintptr(outputQuota), uintptr(unsafe.Pointer(timeout)))
3701	if r0 != 0 {
3702		ntstatus = NTStatus(r0)
3703	}
3704	return
3705}
3706
3707func NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) {
3708	r0, _, _ := syscall.SyscallN(procNtQueryInformationProcess.Addr(), uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), uintptr(unsafe.Pointer(retLen)))
3709	if r0 != 0 {
3710		ntstatus = NTStatus(r0)
3711	}
3712	return
3713}
3714
3715func NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) {
3716	r0, _, _ := syscall.SyscallN(procNtQuerySystemInformation.Addr(), uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen), uintptr(unsafe.Pointer(retLen)))
3717	if r0 != 0 {
3718		ntstatus = NTStatus(r0)
3719	}
3720	return
3721}
3722
3723func NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) {
3724	r0, _, _ := syscall.SyscallN(procNtSetInformationFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), uintptr(class))
3725	if r0 != 0 {
3726		ntstatus = NTStatus(r0)
3727	}
3728	return
3729}
3730
3731func NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) {
3732	r0, _, _ := syscall.SyscallN(procNtSetInformationProcess.Addr(), uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen))
3733	if r0 != 0 {
3734		ntstatus = NTStatus(r0)
3735	}
3736	return
3737}
3738
3739func NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) {
3740	r0, _, _ := syscall.SyscallN(procNtSetSystemInformation.Addr(), uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen))
3741	if r0 != 0 {
3742		ntstatus = NTStatus(r0)
3743	}
3744	return
3745}
3746
3747func RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) {
3748	r0, _, _ := syscall.SyscallN(procRtlAddFunctionTable.Addr(), uintptr(unsafe.Pointer(functionTable)), uintptr(entryCount), uintptr(baseAddress))
3749	ret = r0 != 0
3750	return
3751}
3752
3753func RtlDefaultNpAcl(acl **ACL) (ntstatus error) {
3754	r0, _, _ := syscall.SyscallN(procRtlDefaultNpAcl.Addr(), uintptr(unsafe.Pointer(acl)))
3755	if r0 != 0 {
3756		ntstatus = NTStatus(r0)
3757	}
3758	return
3759}
3760
3761func RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) {
3762	r0, _, _ := syscall.SyscallN(procRtlDeleteFunctionTable.Addr(), uintptr(unsafe.Pointer(functionTable)))
3763	ret = r0 != 0
3764	return
3765}
3766
3767func RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) {
3768	r0, _, _ := syscall.SyscallN(procRtlDosPathNameToNtPathName_U_WithStatus.Addr(), uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)))
3769	if r0 != 0 {
3770		ntstatus = NTStatus(r0)
3771	}
3772	return
3773}
3774
3775func RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) {
3776	r0, _, _ := syscall.SyscallN(procRtlDosPathNameToRelativeNtPathName_U_WithStatus.Addr(), uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)))
3777	if r0 != 0 {
3778		ntstatus = NTStatus(r0)
3779	}
3780	return
3781}
3782
3783func RtlGetCurrentPeb() (peb *PEB) {
3784	r0, _, _ := syscall.SyscallN(procRtlGetCurrentPeb.Addr())
3785	peb = (*PEB)(unsafe.Pointer(r0))
3786	return
3787}
3788
3789func rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) {
3790	syscall.SyscallN(procRtlGetNtVersionNumbers.Addr(), uintptr(unsafe.Pointer(majorVersion)), uintptr(unsafe.Pointer(minorVersion)), uintptr(unsafe.Pointer(buildNumber)))
3791	return
3792}
3793
3794func rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) {
3795	r0, _, _ := syscall.SyscallN(procRtlGetVersion.Addr(), uintptr(unsafe.Pointer(info)))
3796	if r0 != 0 {
3797		ntstatus = NTStatus(r0)
3798	}
3799	return
3800}
3801
3802func RtlInitString(destinationString *NTString, sourceString *byte) {
3803	syscall.SyscallN(procRtlInitString.Addr(), uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)))
3804	return
3805}
3806
3807func RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) {
3808	syscall.SyscallN(procRtlInitUnicodeString.Addr(), uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)))
3809	return
3810}
3811
3812func rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) {
3813	r0, _, _ := syscall.SyscallN(procRtlNtStatusToDosErrorNoTeb.Addr(), uintptr(ntstatus))
3814	ret = syscall.Errno(r0)
3815	return
3816}
3817
3818func clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) {
3819	r0, _, _ := syscall.SyscallN(procCLSIDFromString.Addr(), uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid)))
3820	if r0 != 0 {
3821		ret = syscall.Errno(r0)
3822	}
3823	return
3824}
3825
3826func coCreateGuid(pguid *GUID) (ret error) {
3827	r0, _, _ := syscall.SyscallN(procCoCreateGuid.Addr(), uintptr(unsafe.Pointer(pguid)))
3828	if r0 != 0 {
3829		ret = syscall.Errno(r0)
3830	}
3831	return
3832}
3833
3834func CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) {
3835	r0, _, _ := syscall.SyscallN(procCoGetObject.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bindOpts)), uintptr(unsafe.Pointer(guid)), uintptr(unsafe.Pointer(functionTable)))
3836	if r0 != 0 {
3837		ret = syscall.Errno(r0)
3838	}
3839	return
3840}
3841
3842func CoInitializeEx(reserved uintptr, coInit uint32) (ret error) {
3843	r0, _, _ := syscall.SyscallN(procCoInitializeEx.Addr(), uintptr(reserved), uintptr(coInit))
3844	if r0 != 0 {
3845		ret = syscall.Errno(r0)
3846	}
3847	return
3848}
3849
3850func CoTaskMemFree(address unsafe.Pointer) {
3851	syscall.SyscallN(procCoTaskMemFree.Addr(), uintptr(address))
3852	return
3853}
3854
3855func CoUninitialize() {
3856	syscall.SyscallN(procCoUninitialize.Addr())
3857	return
3858}
3859
3860func stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) {
3861	r0, _, _ := syscall.SyscallN(procStringFromGUID2.Addr(), uintptr(unsafe.Pointer(rguid)), uintptr(unsafe.Pointer(lpsz)), uintptr(cchMax))
3862	chars = int32(r0)
3863	return
3864}
3865
3866func EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) {
3867	r1, _, e1 := syscall.SyscallN(procEnumProcessModules.Addr(), uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)))
3868	if r1 == 0 {
3869		err = errnoErr(e1)
3870	}
3871	return
3872}
3873
3874func EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) {
3875	r1, _, e1 := syscall.SyscallN(procEnumProcessModulesEx.Addr(), uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), uintptr(filterFlag))
3876	if r1 == 0 {
3877		err = errnoErr(e1)
3878	}
3879	return
3880}
3881
3882func enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) {
3883	r1, _, e1 := syscall.SyscallN(procEnumProcesses.Addr(), uintptr(unsafe.Pointer(processIds)), uintptr(nSize), uintptr(unsafe.Pointer(bytesReturned)))
3884	if r1 == 0 {
3885		err = errnoErr(e1)
3886	}
3887	return
3888}
3889
3890func GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) {
3891	r1, _, e1 := syscall.SyscallN(procGetModuleBaseNameW.Addr(), uintptr(process), uintptr(module), uintptr(unsafe.Pointer(baseName)), uintptr(size))
3892	if r1 == 0 {
3893		err = errnoErr(e1)
3894	}
3895	return
3896}
3897
3898func GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) {
3899	r1, _, e1 := syscall.SyscallN(procGetModuleFileNameExW.Addr(), uintptr(process), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size))
3900	if r1 == 0 {
3901		err = errnoErr(e1)
3902	}
3903	return
3904}
3905
3906func GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) {
3907	r1, _, e1 := syscall.SyscallN(procGetModuleInformation.Addr(), uintptr(process), uintptr(module), uintptr(unsafe.Pointer(modinfo)), uintptr(cb))
3908	if r1 == 0 {
3909		err = errnoErr(e1)
3910	}
3911	return
3912}
3913
3914func QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) {
3915	r1, _, e1 := syscall.SyscallN(procQueryWorkingSetEx.Addr(), uintptr(process), uintptr(pv), uintptr(cb))
3916	if r1 == 0 {
3917		err = errnoErr(e1)
3918	}
3919	return
3920}
3921
3922func SubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) {
3923	ret = procSubscribeServiceChangeNotifications.Find()
3924	if ret != nil {
3925		return
3926	}
3927	r0, _, _ := syscall.SyscallN(procSubscribeServiceChangeNotifications.Addr(), uintptr(service), uintptr(eventType), uintptr(callback), uintptr(callbackCtx), uintptr(unsafe.Pointer(subscription)))
3928	if r0 != 0 {
3929		ret = syscall.Errno(r0)
3930	}
3931	return
3932}
3933
3934func UnsubscribeServiceChangeNotifications(subscription uintptr) (err error) {
3935	err = procUnsubscribeServiceChangeNotifications.Find()
3936	if err != nil {
3937		return
3938	}
3939	syscall.SyscallN(procUnsubscribeServiceChangeNotifications.Addr(), uintptr(subscription))
3940	return
3941}
3942
3943func GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) {
3944	r1, _, e1 := syscall.SyscallN(procGetUserNameExW.Addr(), uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize)))
3945	if r1&0xff == 0 {
3946		err = errnoErr(e1)
3947	}
3948	return
3949}
3950
3951func TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) {
3952	r1, _, e1 := syscall.SyscallN(procTranslateNameW.Addr(), uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize)))
3953	if r1&0xff == 0 {
3954		err = errnoErr(e1)
3955	}
3956	return
3957}
3958
3959func SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) {
3960	r1, _, e1 := syscall.SyscallN(procSetupDiBuildDriverInfoList.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType))
3961	if r1 == 0 {
3962		err = errnoErr(e1)
3963	}
3964	return
3965}
3966
3967func SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) {
3968	r1, _, e1 := syscall.SyscallN(procSetupDiCallClassInstaller.Addr(), uintptr(installFunction), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)))
3969	if r1 == 0 {
3970		err = errnoErr(e1)
3971	}
3972	return
3973}
3974
3975func SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) {
3976	r1, _, e1 := syscall.SyscallN(procSetupDiCancelDriverInfoSearch.Addr(), uintptr(deviceInfoSet))
3977	if r1 == 0 {
3978		err = errnoErr(e1)
3979	}
3980	return
3981}
3982
3983func setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) {
3984	r1, _, e1 := syscall.SyscallN(procSetupDiClassGuidsFromNameExW.Addr(), uintptr(unsafe.Pointer(className)), uintptr(unsafe.Pointer(classGuidList)), uintptr(classGuidListSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved))
3985	if r1 == 0 {
3986		err = errnoErr(e1)
3987	}
3988	return
3989}
3990
3991func setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) {
3992	r1, _, e1 := syscall.SyscallN(procSetupDiClassNameFromGuidExW.Addr(), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(className)), uintptr(classNameSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved))
3993	if r1 == 0 {
3994		err = errnoErr(e1)
3995	}
3996	return
3997}
3998
3999func setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) {
4000	r0, _, e1 := syscall.SyscallN(procSetupDiCreateDeviceInfoListExW.Addr(), uintptr(unsafe.Pointer(classGUID)), uintptr(hwndParent), uintptr(unsafe.Pointer(machineName)), uintptr(reserved))
4001	handle = DevInfo(r0)
4002	if handle == DevInfo(InvalidHandle) {
4003		err = errnoErr(e1)
4004	}
4005	return
4006}
4007
4008func setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) {
4009	r1, _, e1 := syscall.SyscallN(procSetupDiCreateDeviceInfoW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(DeviceName)), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(DeviceDescription)), uintptr(hwndParent), uintptr(CreationFlags), uintptr(unsafe.Pointer(deviceInfoData)))
4010	if r1 == 0 {
4011		err = errnoErr(e1)
4012	}
4013	return
4014}
4015
4016func SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) {
4017	r1, _, e1 := syscall.SyscallN(procSetupDiDestroyDeviceInfoList.Addr(), uintptr(deviceInfoSet))
4018	if r1 == 0 {
4019		err = errnoErr(e1)
4020	}
4021	return
4022}
4023
4024func SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) {
4025	r1, _, e1 := syscall.SyscallN(procSetupDiDestroyDriverInfoList.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType))
4026	if r1 == 0 {
4027		err = errnoErr(e1)
4028	}
4029	return
4030}
4031
4032func setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) {
4033	r1, _, e1 := syscall.SyscallN(procSetupDiEnumDeviceInfo.Addr(), uintptr(deviceInfoSet), uintptr(memberIndex), uintptr(unsafe.Pointer(deviceInfoData)))
4034	if r1 == 0 {
4035		err = errnoErr(e1)
4036	}
4037	return
4038}
4039
4040func setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) {
4041	r1, _, e1 := syscall.SyscallN(procSetupDiEnumDriverInfoW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType), uintptr(memberIndex), uintptr(unsafe.Pointer(driverInfoData)))
4042	if r1 == 0 {
4043		err = errnoErr(e1)
4044	}
4045	return
4046}
4047
4048func setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) {
4049	r0, _, e1 := syscall.SyscallN(procSetupDiGetClassDevsExW.Addr(), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(Enumerator)), uintptr(hwndParent), uintptr(Flags), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(machineName)), uintptr(reserved))
4050	handle = DevInfo(r0)
4051	if handle == DevInfo(InvalidHandle) {
4052		err = errnoErr(e1)
4053	}
4054	return
4055}
4056
4057func SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) {
4058	r1, _, e1 := syscall.SyscallN(procSetupDiGetClassInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), uintptr(unsafe.Pointer(requiredSize)))
4059	if r1 == 0 {
4060		err = errnoErr(e1)
4061	}
4062	return
4063}
4064
4065func setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) {
4066	r1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceInfoListDetailW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoSetDetailData)))
4067	if r1 == 0 {
4068		err = errnoErr(e1)
4069	}
4070	return
4071}
4072
4073func setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) {
4074	r1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams)))
4075	if r1 == 0 {
4076		err = errnoErr(e1)
4077	}
4078	return
4079}
4080
4081func setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) {
4082	r1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceInstanceIdW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(instanceId)), uintptr(instanceIdSize), uintptr(unsafe.Pointer(instanceIdRequiredSize)))
4083	if r1 == 0 {
4084		err = errnoErr(e1)
4085	}
4086	return
4087}
4088
4089func setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) {
4090	r1, _, e1 := syscall.SyscallN(procSetupDiGetDevicePropertyW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(flags))
4091	if r1 == 0 {
4092		err = errnoErr(e1)
4093	}
4094	return
4095}
4096
4097func setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) {
4098	r1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceRegistryPropertyW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyRegDataType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)))
4099	if r1 == 0 {
4100		err = errnoErr(e1)
4101	}
4102	return
4103}
4104
4105func setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) {
4106	r1, _, e1 := syscall.SyscallN(procSetupDiGetDriverInfoDetailW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)), uintptr(unsafe.Pointer(driverInfoDetailData)), uintptr(driverInfoDetailDataSize), uintptr(unsafe.Pointer(requiredSize)))
4107	if r1 == 0 {
4108		err = errnoErr(e1)
4109	}
4110	return
4111}
4112
4113func setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) {
4114	r1, _, e1 := syscall.SyscallN(procSetupDiGetSelectedDevice.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)))
4115	if r1 == 0 {
4116		err = errnoErr(e1)
4117	}
4118	return
4119}
4120
4121func setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) {
4122	r1, _, e1 := syscall.SyscallN(procSetupDiGetSelectedDriverW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)))
4123	if r1 == 0 {
4124		err = errnoErr(e1)
4125	}
4126	return
4127}
4128
4129func SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) {
4130	r0, _, e1 := syscall.SyscallN(procSetupDiOpenDevRegKey.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(Scope), uintptr(HwProfile), uintptr(KeyType), uintptr(samDesired))
4131	key = Handle(r0)
4132	if key == InvalidHandle {
4133		err = errnoErr(e1)
4134	}
4135	return
4136}
4137
4138func SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) {
4139	r1, _, e1 := syscall.SyscallN(procSetupDiSetClassInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize))
4140	if r1 == 0 {
4141		err = errnoErr(e1)
4142	}
4143	return
4144}
4145
4146func SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) {
4147	r1, _, e1 := syscall.SyscallN(procSetupDiSetDeviceInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams)))
4148	if r1 == 0 {
4149		err = errnoErr(e1)
4150	}
4151	return
4152}
4153
4154func setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) {
4155	r1, _, e1 := syscall.SyscallN(procSetupDiSetDeviceRegistryPropertyW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize))
4156	if r1 == 0 {
4157		err = errnoErr(e1)
4158	}
4159	return
4160}
4161
4162func SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) {
4163	r1, _, e1 := syscall.SyscallN(procSetupDiSetSelectedDevice.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)))
4164	if r1 == 0 {
4165		err = errnoErr(e1)
4166	}
4167	return
4168}
4169
4170func SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) {
4171	r1, _, e1 := syscall.SyscallN(procSetupDiSetSelectedDriverW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)))
4172	if r1 == 0 {
4173		err = errnoErr(e1)
4174	}
4175	return
4176}
4177
4178func setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) {
4179	r1, _, e1 := syscall.SyscallN(procSetupUninstallOEMInfW.Addr(), uintptr(unsafe.Pointer(infFileName)), uintptr(flags), uintptr(reserved))
4180	if r1 == 0 {
4181		err = errnoErr(e1)
4182	}
4183	return
4184}
4185
4186func commandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) {
4187	r0, _, e1 := syscall.SyscallN(procCommandLineToArgvW.Addr(), uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)))
4188	argv = (**uint16)(unsafe.Pointer(r0))
4189	if argv == nil {
4190		err = errnoErr(e1)
4191	}
4192	return
4193}
4194
4195func shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) {
4196	r0, _, _ := syscall.SyscallN(procSHGetKnownFolderPath.Addr(), uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path)))
4197	if r0 != 0 {
4198		ret = syscall.Errno(r0)
4199	}
4200	return
4201}
4202
4203func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) {
4204	r1, _, e1 := syscall.SyscallN(procShellExecuteW.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(verb)), uintptr(unsafe.Pointer(file)), uintptr(unsafe.Pointer(args)), uintptr(unsafe.Pointer(cwd)), uintptr(showCmd))
4205	if r1 <= 32 {
4206		err = errnoErr(e1)
4207	}
4208	return
4209}
4210
4211func EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) {
4212	syscall.SyscallN(procEnumChildWindows.Addr(), uintptr(hwnd), uintptr(enumFunc), uintptr(param))
4213	return
4214}
4215
4216func EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) {
4217	r1, _, e1 := syscall.SyscallN(procEnumWindows.Addr(), uintptr(enumFunc), uintptr(param))
4218	if r1 == 0 {
4219		err = errnoErr(e1)
4220	}
4221	return
4222}
4223
4224func ExitWindowsEx(flags uint32, reason uint32) (err error) {
4225	r1, _, e1 := syscall.SyscallN(procExitWindowsEx.Addr(), uintptr(flags), uintptr(reason))
4226	if r1 == 0 {
4227		err = errnoErr(e1)
4228	}
4229	return
4230}
4231
4232func GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) {
4233	r0, _, e1 := syscall.SyscallN(procGetClassNameW.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(className)), uintptr(maxCount))
4234	copied = int32(r0)
4235	if copied == 0 {
4236		err = errnoErr(e1)
4237	}
4238	return
4239}
4240
4241func GetDesktopWindow() (hwnd HWND) {
4242	r0, _, _ := syscall.SyscallN(procGetDesktopWindow.Addr())
4243	hwnd = HWND(r0)
4244	return
4245}
4246
4247func GetForegroundWindow() (hwnd HWND) {
4248	r0, _, _ := syscall.SyscallN(procGetForegroundWindow.Addr())
4249	hwnd = HWND(r0)
4250	return
4251}
4252
4253func GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) {
4254	r1, _, e1 := syscall.SyscallN(procGetGUIThreadInfo.Addr(), uintptr(thread), uintptr(unsafe.Pointer(info)))
4255	if r1 == 0 {
4256		err = errnoErr(e1)
4257	}
4258	return
4259}
4260
4261func GetKeyboardLayout(tid uint32) (hkl Handle) {
4262	r0, _, _ := syscall.SyscallN(procGetKeyboardLayout.Addr(), uintptr(tid))
4263	hkl = Handle(r0)
4264	return
4265}
4266
4267func GetShellWindow() (shellWindow HWND) {
4268	r0, _, _ := syscall.SyscallN(procGetShellWindow.Addr())
4269	shellWindow = HWND(r0)
4270	return
4271}
4272
4273func GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) {
4274	r0, _, e1 := syscall.SyscallN(procGetWindowThreadProcessId.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(pid)))
4275	tid = uint32(r0)
4276	if tid == 0 {
4277		err = errnoErr(e1)
4278	}
4279	return
4280}
4281
4282func IsWindow(hwnd HWND) (isWindow bool) {
4283	r0, _, _ := syscall.SyscallN(procIsWindow.Addr(), uintptr(hwnd))
4284	isWindow = r0 != 0
4285	return
4286}
4287
4288func IsWindowUnicode(hwnd HWND) (isUnicode bool) {
4289	r0, _, _ := syscall.SyscallN(procIsWindowUnicode.Addr(), uintptr(hwnd))
4290	isUnicode = r0 != 0
4291	return
4292}
4293
4294func IsWindowVisible(hwnd HWND) (isVisible bool) {
4295	r0, _, _ := syscall.SyscallN(procIsWindowVisible.Addr(), uintptr(hwnd))
4296	isVisible = r0 != 0
4297	return
4298}
4299
4300func LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) {
4301	r0, _, e1 := syscall.SyscallN(procLoadKeyboardLayoutW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(flags))
4302	hkl = Handle(r0)
4303	if hkl == 0 {
4304		err = errnoErr(e1)
4305	}
4306	return
4307}
4308
4309func MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) {
4310	r0, _, e1 := syscall.SyscallN(procMessageBoxW.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype))
4311	ret = int32(r0)
4312	if ret == 0 {
4313		err = errnoErr(e1)
4314	}
4315	return
4316}
4317
4318func ToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) {
4319	r0, _, _ := syscall.SyscallN(procToUnicodeEx.Addr(), uintptr(vkey), uintptr(scancode), uintptr(unsafe.Pointer(keystate)), uintptr(unsafe.Pointer(pwszBuff)), uintptr(cchBuff), uintptr(flags), uintptr(hkl))
4320	ret = int32(r0)
4321	return
4322}
4323
4324func UnloadKeyboardLayout(hkl Handle) (err error) {
4325	r1, _, e1 := syscall.SyscallN(procUnloadKeyboardLayout.Addr(), uintptr(hkl))
4326	if r1 == 0 {
4327		err = errnoErr(e1)
4328	}
4329	return
4330}
4331
4332func CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) {
4333	var _p0 uint32
4334	if inheritExisting {
4335		_p0 = 1
4336	}
4337	r1, _, e1 := syscall.SyscallN(procCreateEnvironmentBlock.Addr(), uintptr(unsafe.Pointer(block)), uintptr(token), uintptr(_p0))
4338	if r1 == 0 {
4339		err = errnoErr(e1)
4340	}
4341	return
4342}
4343
4344func DestroyEnvironmentBlock(block *uint16) (err error) {
4345	r1, _, e1 := syscall.SyscallN(procDestroyEnvironmentBlock.Addr(), uintptr(unsafe.Pointer(block)))
4346	if r1 == 0 {
4347		err = errnoErr(e1)
4348	}
4349	return
4350}
4351
4352func GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) {
4353	r1, _, e1 := syscall.SyscallN(procGetUserProfileDirectoryW.Addr(), uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen)))
4354	if r1 == 0 {
4355		err = errnoErr(e1)
4356	}
4357	return
4358}
4359
4360func GetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32, err error) {
4361	var _p0 *uint16
4362	_p0, err = syscall.UTF16PtrFromString(filename)
4363	if err != nil {
4364		return
4365	}
4366	return _GetFileVersionInfoSize(_p0, zeroHandle)
4367}
4368
4369func _GetFileVersionInfoSize(filename *uint16, zeroHandle *Handle) (bufSize uint32, err error) {
4370	r0, _, e1 := syscall.SyscallN(procGetFileVersionInfoSizeW.Addr(), uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(zeroHandle)))
4371	bufSize = uint32(r0)
4372	if bufSize == 0 {
4373		err = errnoErr(e1)
4374	}
4375	return
4376}
4377
4378func GetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) {
4379	var _p0 *uint16
4380	_p0, err = syscall.UTF16PtrFromString(filename)
4381	if err != nil {
4382		return
4383	}
4384	return _GetFileVersionInfo(_p0, handle, bufSize, buffer)
4385}
4386
4387func _GetFileVersionInfo(filename *uint16, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) {
4388	r1, _, e1 := syscall.SyscallN(procGetFileVersionInfoW.Addr(), uintptr(unsafe.Pointer(filename)), uintptr(handle), uintptr(bufSize), uintptr(buffer))
4389	if r1 == 0 {
4390		err = errnoErr(e1)
4391	}
4392	return
4393}
4394
4395func VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) {
4396	var _p0 *uint16
4397	_p0, err = syscall.UTF16PtrFromString(subBlock)
4398	if err != nil {
4399		return
4400	}
4401	return _VerQueryValue(block, _p0, pointerToBufferPointer, bufSize)
4402}
4403
4404func _VerQueryValue(block unsafe.Pointer, subBlock *uint16, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) {
4405	r1, _, e1 := syscall.SyscallN(procVerQueryValueW.Addr(), uintptr(block), uintptr(unsafe.Pointer(subBlock)), uintptr(pointerToBufferPointer), uintptr(unsafe.Pointer(bufSize)))
4406	if r1 == 0 {
4407		err = errnoErr(e1)
4408	}
4409	return
4410}
4411
4412func TimeBeginPeriod(period uint32) (err error) {
4413	r1, _, e1 := syscall.SyscallN(proctimeBeginPeriod.Addr(), uintptr(period))
4414	if r1 != 0 {
4415		err = errnoErr(e1)
4416	}
4417	return
4418}
4419
4420func TimeEndPeriod(period uint32) (err error) {
4421	r1, _, e1 := syscall.SyscallN(proctimeEndPeriod.Addr(), uintptr(period))
4422	if r1 != 0 {
4423		err = errnoErr(e1)
4424	}
4425	return
4426}
4427
4428func WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) {
4429	r0, _, _ := syscall.SyscallN(procWinVerifyTrustEx.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(actionId)), uintptr(unsafe.Pointer(data)))
4430	if r0 != 0 {
4431		ret = syscall.Errno(r0)
4432	}
4433	return
4434}
4435
4436func FreeAddrInfoW(addrinfo *AddrinfoW) {
4437	syscall.SyscallN(procFreeAddrInfoW.Addr(), uintptr(unsafe.Pointer(addrinfo)))
4438	return
4439}
4440
4441func GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) {
4442	r0, _, _ := syscall.SyscallN(procGetAddrInfoW.Addr(), uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result)))
4443	if r0 != 0 {
4444		sockerr = syscall.Errno(r0)
4445	}
4446	return
4447}
4448
4449func WSACleanup() (err error) {
4450	r1, _, e1 := syscall.SyscallN(procWSACleanup.Addr())
4451	if r1 == socket_error {
4452		err = errnoErr(e1)
4453	}
4454	return
4455}
4456
4457func WSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err error) {
4458	r1, _, e1 := syscall.SyscallN(procWSADuplicateSocketW.Addr(), uintptr(s), uintptr(processID), uintptr(unsafe.Pointer(info)))
4459	if r1 != 0 {
4460		err = errnoErr(e1)
4461	}
4462	return
4463}
4464
4465func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) {
4466	r0, _, e1 := syscall.SyscallN(procWSAEnumProtocolsW.Addr(), uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength)))
4467	n = int32(r0)
4468	if n == -1 {
4469		err = errnoErr(e1)
4470	}
4471	return
4472}
4473
4474func WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) {
4475	var _p0 uint32
4476	if wait {
4477		_p0 = 1
4478	}
4479	r1, _, e1 := syscall.SyscallN(procWSAGetOverlappedResult.Addr(), uintptr(h), uintptr(unsafe.Pointer(o)), uintptr(unsafe.Pointer(bytes)), uintptr(_p0), uintptr(unsafe.Pointer(flags)))
4480	if r1 == 0 {
4481		err = errnoErr(e1)
4482	}
4483	return
4484}
4485
4486func WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) {
4487	r1, _, e1 := syscall.SyscallN(procWSAIoctl.Addr(), uintptr(s), uintptr(iocc), uintptr(unsafe.Pointer(inbuf)), uintptr(cbif), uintptr(unsafe.Pointer(outbuf)), uintptr(cbob), uintptr(unsafe.Pointer(cbbr)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine))
4488	if r1 == socket_error {
4489		err = errnoErr(e1)
4490	}
4491	return
4492}
4493
4494func WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) {
4495	r1, _, e1 := syscall.SyscallN(procWSALookupServiceBeginW.Addr(), uintptr(unsafe.Pointer(querySet)), uintptr(flags), uintptr(unsafe.Pointer(handle)))
4496	if r1 == socket_error {
4497		err = errnoErr(e1)
4498	}
4499	return
4500}
4501
4502func WSALookupServiceEnd(handle Handle) (err error) {
4503	r1, _, e1 := syscall.SyscallN(procWSALookupServiceEnd.Addr(), uintptr(handle))
4504	if r1 == socket_error {
4505		err = errnoErr(e1)
4506	}
4507	return
4508}
4509
4510func WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) {
4511	r1, _, e1 := syscall.SyscallN(procWSALookupServiceNextW.Addr(), uintptr(handle), uintptr(flags), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(querySet)))
4512	if r1 == socket_error {
4513		err = errnoErr(e1)
4514	}
4515	return
4516}
4517
4518func WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) {
4519	r1, _, e1 := syscall.SyscallN(procWSARecv.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)))
4520	if r1 == socket_error {
4521		err = errnoErr(e1)
4522	}
4523	return
4524}
4525
4526func WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) {
4527	r1, _, e1 := syscall.SyscallN(procWSARecvFrom.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)))
4528	if r1 == socket_error {
4529		err = errnoErr(e1)
4530	}
4531	return
4532}
4533
4534func WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) {
4535	r1, _, e1 := syscall.SyscallN(procWSASend.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)))
4536	if r1 == socket_error {
4537		err = errnoErr(e1)
4538	}
4539	return
4540}
4541
4542func WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) {
4543	r1, _, e1 := syscall.SyscallN(procWSASendTo.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(to)), uintptr(tolen), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)))
4544	if r1 == socket_error {
4545		err = errnoErr(e1)
4546	}
4547	return
4548}
4549
4550func WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) {
4551	r0, _, e1 := syscall.SyscallN(procWSASocketW.Addr(), uintptr(af), uintptr(typ), uintptr(protocol), uintptr(unsafe.Pointer(protoInfo)), uintptr(group), uintptr(flags))
4552	handle = Handle(r0)
4553	if handle == InvalidHandle {
4554		err = errnoErr(e1)
4555	}
4556	return
4557}
4558
4559func WSAStartup(verreq uint32, data *WSAData) (sockerr error) {
4560	r0, _, _ := syscall.SyscallN(procWSAStartup.Addr(), uintptr(verreq), uintptr(unsafe.Pointer(data)))
4561	if r0 != 0 {
4562		sockerr = syscall.Errno(r0)
4563	}
4564	return
4565}
4566
4567func bind(s Handle, name unsafe.Pointer, namelen int32) (err error) {
4568	r1, _, e1 := syscall.SyscallN(procbind.Addr(), uintptr(s), uintptr(name), uintptr(namelen))
4569	if r1 == socket_error {
4570		err = errnoErr(e1)
4571	}
4572	return
4573}
4574
4575func Closesocket(s Handle) (err error) {
4576	r1, _, e1 := syscall.SyscallN(procclosesocket.Addr(), uintptr(s))
4577	if r1 == socket_error {
4578		err = errnoErr(e1)
4579	}
4580	return
4581}
4582
4583func connect(s Handle, name unsafe.Pointer, namelen int32) (err error) {
4584	r1, _, e1 := syscall.SyscallN(procconnect.Addr(), uintptr(s), uintptr(name), uintptr(namelen))
4585	if r1 == socket_error {
4586		err = errnoErr(e1)
4587	}
4588	return
4589}
4590
4591func GetHostByName(name string) (h *Hostent, err error) {
4592	var _p0 *byte
4593	_p0, err = syscall.BytePtrFromString(name)
4594	if err != nil {
4595		return
4596	}
4597	return _GetHostByName(_p0)
4598}
4599
4600func _GetHostByName(name *byte) (h *Hostent, err error) {
4601	r0, _, e1 := syscall.SyscallN(procgethostbyname.Addr(), uintptr(unsafe.Pointer(name)))
4602	h = (*Hostent)(unsafe.Pointer(r0))
4603	if h == nil {
4604		err = errnoErr(e1)
4605	}
4606	return
4607}
4608
4609func getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) {
4610	r1, _, e1 := syscall.SyscallN(procgetpeername.Addr(), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
4611	if r1 == socket_error {
4612		err = errnoErr(e1)
4613	}
4614	return
4615}
4616
4617func GetProtoByName(name string) (p *Protoent, err error) {
4618	var _p0 *byte
4619	_p0, err = syscall.BytePtrFromString(name)
4620	if err != nil {
4621		return
4622	}
4623	return _GetProtoByName(_p0)
4624}
4625
4626func _GetProtoByName(name *byte) (p *Protoent, err error) {
4627	r0, _, e1 := syscall.SyscallN(procgetprotobyname.Addr(), uintptr(unsafe.Pointer(name)))
4628	p = (*Protoent)(unsafe.Pointer(r0))
4629	if p == nil {
4630		err = errnoErr(e1)
4631	}
4632	return
4633}
4634
4635func GetServByName(name string, proto string) (s *Servent, err error) {
4636	var _p0 *byte
4637	_p0, err = syscall.BytePtrFromString(name)
4638	if err != nil {
4639		return
4640	}
4641	var _p1 *byte
4642	_p1, err = syscall.BytePtrFromString(proto)
4643	if err != nil {
4644		return
4645	}
4646	return _GetServByName(_p0, _p1)
4647}
4648
4649func _GetServByName(name *byte, proto *byte) (s *Servent, err error) {
4650	r0, _, e1 := syscall.SyscallN(procgetservbyname.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto)))
4651	s = (*Servent)(unsafe.Pointer(r0))
4652	if s == nil {
4653		err = errnoErr(e1)
4654	}
4655	return
4656}
4657
4658func getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) {
4659	r1, _, e1 := syscall.SyscallN(procgetsockname.Addr(), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
4660	if r1 == socket_error {
4661		err = errnoErr(e1)
4662	}
4663	return
4664}
4665
4666func Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) {
4667	r1, _, e1 := syscall.SyscallN(procgetsockopt.Addr(), uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen)))
4668	if r1 == socket_error {
4669		err = errnoErr(e1)
4670	}
4671	return
4672}
4673
4674func listen(s Handle, backlog int32) (err error) {
4675	r1, _, e1 := syscall.SyscallN(proclisten.Addr(), uintptr(s), uintptr(backlog))
4676	if r1 == socket_error {
4677		err = errnoErr(e1)
4678	}
4679	return
4680}
4681
4682func Ntohs(netshort uint16) (u uint16) {
4683	r0, _, _ := syscall.SyscallN(procntohs.Addr(), uintptr(netshort))
4684	u = uint16(r0)
4685	return
4686}
4687
4688func recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) {
4689	var _p0 *byte
4690	if len(buf) > 0 {
4691		_p0 = &buf[0]
4692	}
4693	r0, _, e1 := syscall.SyscallN(procrecvfrom.Addr(), uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
4694	n = int32(r0)
4695	if n == -1 {
4696		err = errnoErr(e1)
4697	}
4698	return
4699}
4700
4701func sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) {
4702	var _p0 *byte
4703	if len(buf) > 0 {
4704		_p0 = &buf[0]
4705	}
4706	r1, _, e1 := syscall.SyscallN(procsendto.Addr(), uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(tolen))
4707	if r1 == socket_error {
4708		err = errnoErr(e1)
4709	}
4710	return
4711}
4712
4713func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) {
4714	r1, _, e1 := syscall.SyscallN(procsetsockopt.Addr(), uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen))
4715	if r1 == socket_error {
4716		err = errnoErr(e1)
4717	}
4718	return
4719}
4720
4721func shutdown(s Handle, how int32) (err error) {
4722	r1, _, e1 := syscall.SyscallN(procshutdown.Addr(), uintptr(s), uintptr(how))
4723	if r1 == socket_error {
4724		err = errnoErr(e1)
4725	}
4726	return
4727}
4728
4729func socket(af int32, typ int32, protocol int32) (handle Handle, err error) {
4730	r0, _, e1 := syscall.SyscallN(procsocket.Addr(), uintptr(af), uintptr(typ), uintptr(protocol))
4731	handle = Handle(r0)
4732	if handle == InvalidHandle {
4733		err = errnoErr(e1)
4734	}
4735	return
4736}
4737
4738func WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) {
4739	r1, _, e1 := syscall.SyscallN(procWTSEnumerateSessionsW.Addr(), uintptr(handle), uintptr(reserved), uintptr(version), uintptr(unsafe.Pointer(sessions)), uintptr(unsafe.Pointer(count)))
4740	if r1 == 0 {
4741		err = errnoErr(e1)
4742	}
4743	return
4744}
4745
4746func WTSFreeMemory(ptr uintptr) {
4747	syscall.SyscallN(procWTSFreeMemory.Addr(), uintptr(ptr))
4748	return
4749}
4750
4751func WTSQueryUserToken(session uint32, token *Token) (err error) {
4752	r1, _, e1 := syscall.SyscallN(procWTSQueryUserToken.Addr(), uintptr(session), uintptr(unsafe.Pointer(token)))
4753	if r1 == 0 {
4754		err = errnoErr(e1)
4755	}
4756	return
4757}