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	modadvapi32 = NewLazySystemDLL("advapi32.dll")
40	modcrypt32  = NewLazySystemDLL("crypt32.dll")
41	moddnsapi   = NewLazySystemDLL("dnsapi.dll")
42	modiphlpapi = NewLazySystemDLL("iphlpapi.dll")
43	modkernel32 = NewLazySystemDLL("kernel32.dll")
44	modmswsock  = NewLazySystemDLL("mswsock.dll")
45	modnetapi32 = NewLazySystemDLL("netapi32.dll")
46	modntdll    = NewLazySystemDLL("ntdll.dll")
47	modole32    = NewLazySystemDLL("ole32.dll")
48	modpsapi    = NewLazySystemDLL("psapi.dll")
49	modsecur32  = NewLazySystemDLL("secur32.dll")
50	modshell32  = NewLazySystemDLL("shell32.dll")
51	moduser32   = NewLazySystemDLL("user32.dll")
52	moduserenv  = NewLazySystemDLL("userenv.dll")
53	modws2_32   = NewLazySystemDLL("ws2_32.dll")
54	modwtsapi32 = NewLazySystemDLL("wtsapi32.dll")
55
56	procAdjustTokenGroups                                    = modadvapi32.NewProc("AdjustTokenGroups")
57	procAdjustTokenPrivileges                                = modadvapi32.NewProc("AdjustTokenPrivileges")
58	procAllocateAndInitializeSid                             = modadvapi32.NewProc("AllocateAndInitializeSid")
59	procBuildSecurityDescriptorW                             = modadvapi32.NewProc("BuildSecurityDescriptorW")
60	procChangeServiceConfig2W                                = modadvapi32.NewProc("ChangeServiceConfig2W")
61	procChangeServiceConfigW                                 = modadvapi32.NewProc("ChangeServiceConfigW")
62	procCheckTokenMembership                                 = modadvapi32.NewProc("CheckTokenMembership")
63	procCloseServiceHandle                                   = modadvapi32.NewProc("CloseServiceHandle")
64	procControlService                                       = modadvapi32.NewProc("ControlService")
65	procConvertSecurityDescriptorToStringSecurityDescriptorW = modadvapi32.NewProc("ConvertSecurityDescriptorToStringSecurityDescriptorW")
66	procConvertSidToStringSidW                               = modadvapi32.NewProc("ConvertSidToStringSidW")
67	procConvertStringSecurityDescriptorToSecurityDescriptorW = modadvapi32.NewProc("ConvertStringSecurityDescriptorToSecurityDescriptorW")
68	procConvertStringSidToSidW                               = modadvapi32.NewProc("ConvertStringSidToSidW")
69	procCopySid                                              = modadvapi32.NewProc("CopySid")
70	procCreateServiceW                                       = modadvapi32.NewProc("CreateServiceW")
71	procCreateWellKnownSid                                   = modadvapi32.NewProc("CreateWellKnownSid")
72	procCryptAcquireContextW                                 = modadvapi32.NewProc("CryptAcquireContextW")
73	procCryptGenRandom                                       = modadvapi32.NewProc("CryptGenRandom")
74	procCryptReleaseContext                                  = modadvapi32.NewProc("CryptReleaseContext")
75	procDeleteService                                        = modadvapi32.NewProc("DeleteService")
76	procDeregisterEventSource                                = modadvapi32.NewProc("DeregisterEventSource")
77	procDuplicateTokenEx                                     = modadvapi32.NewProc("DuplicateTokenEx")
78	procEnumServicesStatusExW                                = modadvapi32.NewProc("EnumServicesStatusExW")
79	procEqualSid                                             = modadvapi32.NewProc("EqualSid")
80	procFreeSid                                              = modadvapi32.NewProc("FreeSid")
81	procGetLengthSid                                         = modadvapi32.NewProc("GetLengthSid")
82	procGetNamedSecurityInfoW                                = modadvapi32.NewProc("GetNamedSecurityInfoW")
83	procGetSecurityDescriptorControl                         = modadvapi32.NewProc("GetSecurityDescriptorControl")
84	procGetSecurityDescriptorDacl                            = modadvapi32.NewProc("GetSecurityDescriptorDacl")
85	procGetSecurityDescriptorGroup                           = modadvapi32.NewProc("GetSecurityDescriptorGroup")
86	procGetSecurityDescriptorLength                          = modadvapi32.NewProc("GetSecurityDescriptorLength")
87	procGetSecurityDescriptorOwner                           = modadvapi32.NewProc("GetSecurityDescriptorOwner")
88	procGetSecurityDescriptorRMControl                       = modadvapi32.NewProc("GetSecurityDescriptorRMControl")
89	procGetSecurityDescriptorSacl                            = modadvapi32.NewProc("GetSecurityDescriptorSacl")
90	procGetSecurityInfo                                      = modadvapi32.NewProc("GetSecurityInfo")
91	procGetSidIdentifierAuthority                            = modadvapi32.NewProc("GetSidIdentifierAuthority")
92	procGetSidSubAuthority                                   = modadvapi32.NewProc("GetSidSubAuthority")
93	procGetSidSubAuthorityCount                              = modadvapi32.NewProc("GetSidSubAuthorityCount")
94	procGetTokenInformation                                  = modadvapi32.NewProc("GetTokenInformation")
95	procImpersonateSelf                                      = modadvapi32.NewProc("ImpersonateSelf")
96	procInitializeSecurityDescriptor                         = modadvapi32.NewProc("InitializeSecurityDescriptor")
97	procInitiateSystemShutdownExW                            = modadvapi32.NewProc("InitiateSystemShutdownExW")
98	procIsTokenRestricted                                    = modadvapi32.NewProc("IsTokenRestricted")
99	procIsValidSecurityDescriptor                            = modadvapi32.NewProc("IsValidSecurityDescriptor")
100	procIsValidSid                                           = modadvapi32.NewProc("IsValidSid")
101	procIsWellKnownSid                                       = modadvapi32.NewProc("IsWellKnownSid")
102	procLookupAccountNameW                                   = modadvapi32.NewProc("LookupAccountNameW")
103	procLookupAccountSidW                                    = modadvapi32.NewProc("LookupAccountSidW")
104	procLookupPrivilegeValueW                                = modadvapi32.NewProc("LookupPrivilegeValueW")
105	procMakeAbsoluteSD                                       = modadvapi32.NewProc("MakeAbsoluteSD")
106	procMakeSelfRelativeSD                                   = modadvapi32.NewProc("MakeSelfRelativeSD")
107	procNotifyServiceStatusChangeW                           = modadvapi32.NewProc("NotifyServiceStatusChangeW")
108	procOpenProcessToken                                     = modadvapi32.NewProc("OpenProcessToken")
109	procOpenSCManagerW                                       = modadvapi32.NewProc("OpenSCManagerW")
110	procOpenServiceW                                         = modadvapi32.NewProc("OpenServiceW")
111	procOpenThreadToken                                      = modadvapi32.NewProc("OpenThreadToken")
112	procQueryServiceConfig2W                                 = modadvapi32.NewProc("QueryServiceConfig2W")
113	procQueryServiceConfigW                                  = modadvapi32.NewProc("QueryServiceConfigW")
114	procQueryServiceLockStatusW                              = modadvapi32.NewProc("QueryServiceLockStatusW")
115	procQueryServiceStatus                                   = modadvapi32.NewProc("QueryServiceStatus")
116	procQueryServiceStatusEx                                 = modadvapi32.NewProc("QueryServiceStatusEx")
117	procRegCloseKey                                          = modadvapi32.NewProc("RegCloseKey")
118	procRegEnumKeyExW                                        = modadvapi32.NewProc("RegEnumKeyExW")
119	procRegOpenKeyExW                                        = modadvapi32.NewProc("RegOpenKeyExW")
120	procRegQueryInfoKeyW                                     = modadvapi32.NewProc("RegQueryInfoKeyW")
121	procRegQueryValueExW                                     = modadvapi32.NewProc("RegQueryValueExW")
122	procRegisterEventSourceW                                 = modadvapi32.NewProc("RegisterEventSourceW")
123	procReportEventW                                         = modadvapi32.NewProc("ReportEventW")
124	procRevertToSelf                                         = modadvapi32.NewProc("RevertToSelf")
125	procSetEntriesInAclW                                     = modadvapi32.NewProc("SetEntriesInAclW")
126	procSetKernelObjectSecurity                              = modadvapi32.NewProc("SetKernelObjectSecurity")
127	procSetNamedSecurityInfoW                                = modadvapi32.NewProc("SetNamedSecurityInfoW")
128	procSetSecurityDescriptorControl                         = modadvapi32.NewProc("SetSecurityDescriptorControl")
129	procSetSecurityDescriptorDacl                            = modadvapi32.NewProc("SetSecurityDescriptorDacl")
130	procSetSecurityDescriptorGroup                           = modadvapi32.NewProc("SetSecurityDescriptorGroup")
131	procSetSecurityDescriptorOwner                           = modadvapi32.NewProc("SetSecurityDescriptorOwner")
132	procSetSecurityDescriptorRMControl                       = modadvapi32.NewProc("SetSecurityDescriptorRMControl")
133	procSetSecurityDescriptorSacl                            = modadvapi32.NewProc("SetSecurityDescriptorSacl")
134	procSetSecurityInfo                                      = modadvapi32.NewProc("SetSecurityInfo")
135	procSetServiceStatus                                     = modadvapi32.NewProc("SetServiceStatus")
136	procSetThreadToken                                       = modadvapi32.NewProc("SetThreadToken")
137	procSetTokenInformation                                  = modadvapi32.NewProc("SetTokenInformation")
138	procStartServiceCtrlDispatcherW                          = modadvapi32.NewProc("StartServiceCtrlDispatcherW")
139	procStartServiceW                                        = modadvapi32.NewProc("StartServiceW")
140	procCertAddCertificateContextToStore                     = modcrypt32.NewProc("CertAddCertificateContextToStore")
141	procCertCloseStore                                       = modcrypt32.NewProc("CertCloseStore")
142	procCertCreateCertificateContext                         = modcrypt32.NewProc("CertCreateCertificateContext")
143	procCertDeleteCertificateFromStore                       = modcrypt32.NewProc("CertDeleteCertificateFromStore")
144	procCertEnumCertificatesInStore                          = modcrypt32.NewProc("CertEnumCertificatesInStore")
145	procCertFreeCertificateChain                             = modcrypt32.NewProc("CertFreeCertificateChain")
146	procCertFreeCertificateContext                           = modcrypt32.NewProc("CertFreeCertificateContext")
147	procCertGetCertificateChain                              = modcrypt32.NewProc("CertGetCertificateChain")
148	procCertOpenStore                                        = modcrypt32.NewProc("CertOpenStore")
149	procCertOpenSystemStoreW                                 = modcrypt32.NewProc("CertOpenSystemStoreW")
150	procCertVerifyCertificateChainPolicy                     = modcrypt32.NewProc("CertVerifyCertificateChainPolicy")
151	procDnsNameCompare_W                                     = moddnsapi.NewProc("DnsNameCompare_W")
152	procDnsQuery_W                                           = moddnsapi.NewProc("DnsQuery_W")
153	procDnsRecordListFree                                    = moddnsapi.NewProc("DnsRecordListFree")
154	procGetAdaptersAddresses                                 = modiphlpapi.NewProc("GetAdaptersAddresses")
155	procGetAdaptersInfo                                      = modiphlpapi.NewProc("GetAdaptersInfo")
156	procGetIfEntry                                           = modiphlpapi.NewProc("GetIfEntry")
157	procAssignProcessToJobObject                             = modkernel32.NewProc("AssignProcessToJobObject")
158	procCancelIo                                             = modkernel32.NewProc("CancelIo")
159	procCancelIoEx                                           = modkernel32.NewProc("CancelIoEx")
160	procCloseHandle                                          = modkernel32.NewProc("CloseHandle")
161	procCreateDirectoryW                                     = modkernel32.NewProc("CreateDirectoryW")
162	procCreateEventExW                                       = modkernel32.NewProc("CreateEventExW")
163	procCreateEventW                                         = modkernel32.NewProc("CreateEventW")
164	procCreateFileMappingW                                   = modkernel32.NewProc("CreateFileMappingW")
165	procCreateFileW                                          = modkernel32.NewProc("CreateFileW")
166	procCreateHardLinkW                                      = modkernel32.NewProc("CreateHardLinkW")
167	procCreateIoCompletionPort                               = modkernel32.NewProc("CreateIoCompletionPort")
168	procCreateJobObjectW                                     = modkernel32.NewProc("CreateJobObjectW")
169	procCreateMutexExW                                       = modkernel32.NewProc("CreateMutexExW")
170	procCreateMutexW                                         = modkernel32.NewProc("CreateMutexW")
171	procCreatePipe                                           = modkernel32.NewProc("CreatePipe")
172	procCreateProcessW                                       = modkernel32.NewProc("CreateProcessW")
173	procCreateSymbolicLinkW                                  = modkernel32.NewProc("CreateSymbolicLinkW")
174	procCreateToolhelp32Snapshot                             = modkernel32.NewProc("CreateToolhelp32Snapshot")
175	procDefineDosDeviceW                                     = modkernel32.NewProc("DefineDosDeviceW")
176	procDeleteFileW                                          = modkernel32.NewProc("DeleteFileW")
177	procDeleteVolumeMountPointW                              = modkernel32.NewProc("DeleteVolumeMountPointW")
178	procDeviceIoControl                                      = modkernel32.NewProc("DeviceIoControl")
179	procDuplicateHandle                                      = modkernel32.NewProc("DuplicateHandle")
180	procExitProcess                                          = modkernel32.NewProc("ExitProcess")
181	procFindClose                                            = modkernel32.NewProc("FindClose")
182	procFindFirstFileW                                       = modkernel32.NewProc("FindFirstFileW")
183	procFindFirstVolumeMountPointW                           = modkernel32.NewProc("FindFirstVolumeMountPointW")
184	procFindFirstVolumeW                                     = modkernel32.NewProc("FindFirstVolumeW")
185	procFindNextFileW                                        = modkernel32.NewProc("FindNextFileW")
186	procFindNextVolumeMountPointW                            = modkernel32.NewProc("FindNextVolumeMountPointW")
187	procFindNextVolumeW                                      = modkernel32.NewProc("FindNextVolumeW")
188	procFindVolumeClose                                      = modkernel32.NewProc("FindVolumeClose")
189	procFindVolumeMountPointClose                            = modkernel32.NewProc("FindVolumeMountPointClose")
190	procFlushFileBuffers                                     = modkernel32.NewProc("FlushFileBuffers")
191	procFlushViewOfFile                                      = modkernel32.NewProc("FlushViewOfFile")
192	procFormatMessageW                                       = modkernel32.NewProc("FormatMessageW")
193	procFreeEnvironmentStringsW                              = modkernel32.NewProc("FreeEnvironmentStringsW")
194	procFreeLibrary                                          = modkernel32.NewProc("FreeLibrary")
195	procGenerateConsoleCtrlEvent                             = modkernel32.NewProc("GenerateConsoleCtrlEvent")
196	procGetACP                                               = modkernel32.NewProc("GetACP")
197	procGetCommandLineW                                      = modkernel32.NewProc("GetCommandLineW")
198	procGetComputerNameExW                                   = modkernel32.NewProc("GetComputerNameExW")
199	procGetComputerNameW                                     = modkernel32.NewProc("GetComputerNameW")
200	procGetConsoleMode                                       = modkernel32.NewProc("GetConsoleMode")
201	procGetConsoleScreenBufferInfo                           = modkernel32.NewProc("GetConsoleScreenBufferInfo")
202	procGetCurrentDirectoryW                                 = modkernel32.NewProc("GetCurrentDirectoryW")
203	procGetCurrentProcessId                                  = modkernel32.NewProc("GetCurrentProcessId")
204	procGetCurrentThreadId                                   = modkernel32.NewProc("GetCurrentThreadId")
205	procGetDiskFreeSpaceExW                                  = modkernel32.NewProc("GetDiskFreeSpaceExW")
206	procGetDriveTypeW                                        = modkernel32.NewProc("GetDriveTypeW")
207	procGetEnvironmentStringsW                               = modkernel32.NewProc("GetEnvironmentStringsW")
208	procGetEnvironmentVariableW                              = modkernel32.NewProc("GetEnvironmentVariableW")
209	procGetExitCodeProcess                                   = modkernel32.NewProc("GetExitCodeProcess")
210	procGetFileAttributesExW                                 = modkernel32.NewProc("GetFileAttributesExW")
211	procGetFileAttributesW                                   = modkernel32.NewProc("GetFileAttributesW")
212	procGetFileInformationByHandle                           = modkernel32.NewProc("GetFileInformationByHandle")
213	procGetFileInformationByHandleEx                         = modkernel32.NewProc("GetFileInformationByHandleEx")
214	procGetFileType                                          = modkernel32.NewProc("GetFileType")
215	procGetFinalPathNameByHandleW                            = modkernel32.NewProc("GetFinalPathNameByHandleW")
216	procGetFullPathNameW                                     = modkernel32.NewProc("GetFullPathNameW")
217	procGetLastError                                         = modkernel32.NewProc("GetLastError")
218	procGetLogicalDriveStringsW                              = modkernel32.NewProc("GetLogicalDriveStringsW")
219	procGetLogicalDrives                                     = modkernel32.NewProc("GetLogicalDrives")
220	procGetLongPathNameW                                     = modkernel32.NewProc("GetLongPathNameW")
221	procGetModuleFileNameW                                   = modkernel32.NewProc("GetModuleFileNameW")
222	procGetModuleHandleExW                                   = modkernel32.NewProc("GetModuleHandleExW")
223	procGetOverlappedResult                                  = modkernel32.NewProc("GetOverlappedResult")
224	procGetPriorityClass                                     = modkernel32.NewProc("GetPriorityClass")
225	procGetProcAddress                                       = modkernel32.NewProc("GetProcAddress")
226	procGetProcessId                                         = modkernel32.NewProc("GetProcessId")
227	procGetProcessPreferredUILanguages                       = modkernel32.NewProc("GetProcessPreferredUILanguages")
228	procGetProcessShutdownParameters                         = modkernel32.NewProc("GetProcessShutdownParameters")
229	procGetProcessTimes                                      = modkernel32.NewProc("GetProcessTimes")
230	procGetProcessWorkingSetSizeEx                           = modkernel32.NewProc("GetProcessWorkingSetSizeEx")
231	procGetQueuedCompletionStatus                            = modkernel32.NewProc("GetQueuedCompletionStatus")
232	procGetShortPathNameW                                    = modkernel32.NewProc("GetShortPathNameW")
233	procGetStartupInfoW                                      = modkernel32.NewProc("GetStartupInfoW")
234	procGetStdHandle                                         = modkernel32.NewProc("GetStdHandle")
235	procGetSystemDirectoryW                                  = modkernel32.NewProc("GetSystemDirectoryW")
236	procGetSystemPreferredUILanguages                        = modkernel32.NewProc("GetSystemPreferredUILanguages")
237	procGetSystemTimeAsFileTime                              = modkernel32.NewProc("GetSystemTimeAsFileTime")
238	procGetSystemTimePreciseAsFileTime                       = modkernel32.NewProc("GetSystemTimePreciseAsFileTime")
239	procGetSystemWindowsDirectoryW                           = modkernel32.NewProc("GetSystemWindowsDirectoryW")
240	procGetTempPathW                                         = modkernel32.NewProc("GetTempPathW")
241	procGetThreadPreferredUILanguages                        = modkernel32.NewProc("GetThreadPreferredUILanguages")
242	procGetTickCount64                                       = modkernel32.NewProc("GetTickCount64")
243	procGetTimeZoneInformation                               = modkernel32.NewProc("GetTimeZoneInformation")
244	procGetUserPreferredUILanguages                          = modkernel32.NewProc("GetUserPreferredUILanguages")
245	procGetVersion                                           = modkernel32.NewProc("GetVersion")
246	procGetVolumeInformationByHandleW                        = modkernel32.NewProc("GetVolumeInformationByHandleW")
247	procGetVolumeInformationW                                = modkernel32.NewProc("GetVolumeInformationW")
248	procGetVolumeNameForVolumeMountPointW                    = modkernel32.NewProc("GetVolumeNameForVolumeMountPointW")
249	procGetVolumePathNameW                                   = modkernel32.NewProc("GetVolumePathNameW")
250	procGetVolumePathNamesForVolumeNameW                     = modkernel32.NewProc("GetVolumePathNamesForVolumeNameW")
251	procGetWindowsDirectoryW                                 = modkernel32.NewProc("GetWindowsDirectoryW")
252	procIsWow64Process                                       = modkernel32.NewProc("IsWow64Process")
253	procIsWow64Process2                                      = modkernel32.NewProc("IsWow64Process2")
254	procLoadLibraryExW                                       = modkernel32.NewProc("LoadLibraryExW")
255	procLoadLibraryW                                         = modkernel32.NewProc("LoadLibraryW")
256	procLocalFree                                            = modkernel32.NewProc("LocalFree")
257	procLockFileEx                                           = modkernel32.NewProc("LockFileEx")
258	procMapViewOfFile                                        = modkernel32.NewProc("MapViewOfFile")
259	procMoveFileExW                                          = modkernel32.NewProc("MoveFileExW")
260	procMoveFileW                                            = modkernel32.NewProc("MoveFileW")
261	procMultiByteToWideChar                                  = modkernel32.NewProc("MultiByteToWideChar")
262	procOpenEventW                                           = modkernel32.NewProc("OpenEventW")
263	procOpenMutexW                                           = modkernel32.NewProc("OpenMutexW")
264	procOpenProcess                                          = modkernel32.NewProc("OpenProcess")
265	procOpenThread                                           = modkernel32.NewProc("OpenThread")
266	procPostQueuedCompletionStatus                           = modkernel32.NewProc("PostQueuedCompletionStatus")
267	procProcess32FirstW                                      = modkernel32.NewProc("Process32FirstW")
268	procProcess32NextW                                       = modkernel32.NewProc("Process32NextW")
269	procProcessIdToSessionId                                 = modkernel32.NewProc("ProcessIdToSessionId")
270	procPulseEvent                                           = modkernel32.NewProc("PulseEvent")
271	procQueryDosDeviceW                                      = modkernel32.NewProc("QueryDosDeviceW")
272	procQueryInformationJobObject                            = modkernel32.NewProc("QueryInformationJobObject")
273	procReadConsoleW                                         = modkernel32.NewProc("ReadConsoleW")
274	procReadDirectoryChangesW                                = modkernel32.NewProc("ReadDirectoryChangesW")
275	procReadFile                                             = modkernel32.NewProc("ReadFile")
276	procReleaseMutex                                         = modkernel32.NewProc("ReleaseMutex")
277	procRemoveDirectoryW                                     = modkernel32.NewProc("RemoveDirectoryW")
278	procResetEvent                                           = modkernel32.NewProc("ResetEvent")
279	procResumeThread                                         = modkernel32.NewProc("ResumeThread")
280	procSetConsoleCursorPosition                             = modkernel32.NewProc("SetConsoleCursorPosition")
281	procSetConsoleMode                                       = modkernel32.NewProc("SetConsoleMode")
282	procSetCurrentDirectoryW                                 = modkernel32.NewProc("SetCurrentDirectoryW")
283	procSetDefaultDllDirectories                             = modkernel32.NewProc("SetDefaultDllDirectories")
284	procSetDllDirectoryW                                     = modkernel32.NewProc("SetDllDirectoryW")
285	procSetEndOfFile                                         = modkernel32.NewProc("SetEndOfFile")
286	procSetEnvironmentVariableW                              = modkernel32.NewProc("SetEnvironmentVariableW")
287	procSetErrorMode                                         = modkernel32.NewProc("SetErrorMode")
288	procSetEvent                                             = modkernel32.NewProc("SetEvent")
289	procSetFileAttributesW                                   = modkernel32.NewProc("SetFileAttributesW")
290	procSetFileCompletionNotificationModes                   = modkernel32.NewProc("SetFileCompletionNotificationModes")
291	procSetFileInformationByHandle                           = modkernel32.NewProc("SetFileInformationByHandle")
292	procSetFilePointer                                       = modkernel32.NewProc("SetFilePointer")
293	procSetFileTime                                          = modkernel32.NewProc("SetFileTime")
294	procSetHandleInformation                                 = modkernel32.NewProc("SetHandleInformation")
295	procSetInformationJobObject                              = modkernel32.NewProc("SetInformationJobObject")
296	procSetPriorityClass                                     = modkernel32.NewProc("SetPriorityClass")
297	procSetProcessPriorityBoost                              = modkernel32.NewProc("SetProcessPriorityBoost")
298	procSetProcessShutdownParameters                         = modkernel32.NewProc("SetProcessShutdownParameters")
299	procSetProcessWorkingSetSizeEx                           = modkernel32.NewProc("SetProcessWorkingSetSizeEx")
300	procSetStdHandle                                         = modkernel32.NewProc("SetStdHandle")
301	procSetVolumeLabelW                                      = modkernel32.NewProc("SetVolumeLabelW")
302	procSetVolumeMountPointW                                 = modkernel32.NewProc("SetVolumeMountPointW")
303	procSleepEx                                              = modkernel32.NewProc("SleepEx")
304	procTerminateJobObject                                   = modkernel32.NewProc("TerminateJobObject")
305	procTerminateProcess                                     = modkernel32.NewProc("TerminateProcess")
306	procThread32First                                        = modkernel32.NewProc("Thread32First")
307	procThread32Next                                         = modkernel32.NewProc("Thread32Next")
308	procUnlockFileEx                                         = modkernel32.NewProc("UnlockFileEx")
309	procUnmapViewOfFile                                      = modkernel32.NewProc("UnmapViewOfFile")
310	procVirtualAlloc                                         = modkernel32.NewProc("VirtualAlloc")
311	procVirtualFree                                          = modkernel32.NewProc("VirtualFree")
312	procVirtualLock                                          = modkernel32.NewProc("VirtualLock")
313	procVirtualProtect                                       = modkernel32.NewProc("VirtualProtect")
314	procVirtualUnlock                                        = modkernel32.NewProc("VirtualUnlock")
315	procWaitForMultipleObjects                               = modkernel32.NewProc("WaitForMultipleObjects")
316	procWaitForSingleObject                                  = modkernel32.NewProc("WaitForSingleObject")
317	procWriteConsoleW                                        = modkernel32.NewProc("WriteConsoleW")
318	procWriteFile                                            = modkernel32.NewProc("WriteFile")
319	procAcceptEx                                             = modmswsock.NewProc("AcceptEx")
320	procGetAcceptExSockaddrs                                 = modmswsock.NewProc("GetAcceptExSockaddrs")
321	procTransmitFile                                         = modmswsock.NewProc("TransmitFile")
322	procNetApiBufferFree                                     = modnetapi32.NewProc("NetApiBufferFree")
323	procNetGetJoinInformation                                = modnetapi32.NewProc("NetGetJoinInformation")
324	procNetUserGetInfo                                       = modnetapi32.NewProc("NetUserGetInfo")
325	procRtlGetNtVersionNumbers                               = modntdll.NewProc("RtlGetNtVersionNumbers")
326	procRtlGetVersion                                        = modntdll.NewProc("RtlGetVersion")
327	procCLSIDFromString                                      = modole32.NewProc("CLSIDFromString")
328	procCoCreateGuid                                         = modole32.NewProc("CoCreateGuid")
329	procCoTaskMemFree                                        = modole32.NewProc("CoTaskMemFree")
330	procStringFromGUID2                                      = modole32.NewProc("StringFromGUID2")
331	procEnumProcesses                                        = modpsapi.NewProc("EnumProcesses")
332	procGetUserNameExW                                       = modsecur32.NewProc("GetUserNameExW")
333	procTranslateNameW                                       = modsecur32.NewProc("TranslateNameW")
334	procCommandLineToArgvW                                   = modshell32.NewProc("CommandLineToArgvW")
335	procSHGetKnownFolderPath                                 = modshell32.NewProc("SHGetKnownFolderPath")
336	procShellExecuteW                                        = modshell32.NewProc("ShellExecuteW")
337	procExitWindowsEx                                        = moduser32.NewProc("ExitWindowsEx")
338	procMessageBoxW                                          = moduser32.NewProc("MessageBoxW")
339	procCreateEnvironmentBlock                               = moduserenv.NewProc("CreateEnvironmentBlock")
340	procDestroyEnvironmentBlock                              = moduserenv.NewProc("DestroyEnvironmentBlock")
341	procGetUserProfileDirectoryW                             = moduserenv.NewProc("GetUserProfileDirectoryW")
342	procFreeAddrInfoW                                        = modws2_32.NewProc("FreeAddrInfoW")
343	procGetAddrInfoW                                         = modws2_32.NewProc("GetAddrInfoW")
344	procWSACleanup                                           = modws2_32.NewProc("WSACleanup")
345	procWSAEnumProtocolsW                                    = modws2_32.NewProc("WSAEnumProtocolsW")
346	procWSAIoctl                                             = modws2_32.NewProc("WSAIoctl")
347	procWSARecv                                              = modws2_32.NewProc("WSARecv")
348	procWSARecvFrom                                          = modws2_32.NewProc("WSARecvFrom")
349	procWSASend                                              = modws2_32.NewProc("WSASend")
350	procWSASendTo                                            = modws2_32.NewProc("WSASendTo")
351	procWSAStartup                                           = modws2_32.NewProc("WSAStartup")
352	procbind                                                 = modws2_32.NewProc("bind")
353	procclosesocket                                          = modws2_32.NewProc("closesocket")
354	procconnect                                              = modws2_32.NewProc("connect")
355	procgethostbyname                                        = modws2_32.NewProc("gethostbyname")
356	procgetpeername                                          = modws2_32.NewProc("getpeername")
357	procgetprotobyname                                       = modws2_32.NewProc("getprotobyname")
358	procgetservbyname                                        = modws2_32.NewProc("getservbyname")
359	procgetsockname                                          = modws2_32.NewProc("getsockname")
360	procgetsockopt                                           = modws2_32.NewProc("getsockopt")
361	proclisten                                               = modws2_32.NewProc("listen")
362	procntohs                                                = modws2_32.NewProc("ntohs")
363	procrecvfrom                                             = modws2_32.NewProc("recvfrom")
364	procsendto                                               = modws2_32.NewProc("sendto")
365	procsetsockopt                                           = modws2_32.NewProc("setsockopt")
366	procshutdown                                             = modws2_32.NewProc("shutdown")
367	procsocket                                               = modws2_32.NewProc("socket")
368	procWTSEnumerateSessionsW                                = modwtsapi32.NewProc("WTSEnumerateSessionsW")
369	procWTSFreeMemory                                        = modwtsapi32.NewProc("WTSFreeMemory")
370	procWTSQueryUserToken                                    = modwtsapi32.NewProc("WTSQueryUserToken")
371)
372
373func AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) {
374	var _p0 uint32
375	if resetToDefault {
376		_p0 = 1
377	}
378	r1, _, e1 := syscall.Syscall6(procAdjustTokenGroups.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen)))
379	if r1 == 0 {
380		err = errnoErr(e1)
381	}
382	return
383}
384
385func AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) {
386	var _p0 uint32
387	if disableAllPrivileges {
388		_p0 = 1
389	}
390	r1, _, e1 := syscall.Syscall6(procAdjustTokenPrivileges.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen)))
391	if r1 == 0 {
392		err = errnoErr(e1)
393	}
394	return
395}
396
397func 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) {
398	r1, _, e1 := syscall.Syscall12(procAllocateAndInitializeSid.Addr(), 11, 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)), 0)
399	if r1 == 0 {
400		err = errnoErr(e1)
401	}
402	return
403}
404
405func 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) {
406	r0, _, _ := syscall.Syscall9(procBuildSecurityDescriptorW.Addr(), 9, 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)))
407	if r0 != 0 {
408		ret = syscall.Errno(r0)
409	}
410	return
411}
412
413func ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) {
414	r1, _, e1 := syscall.Syscall(procChangeServiceConfig2W.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(info)))
415	if r1 == 0 {
416		err = errnoErr(e1)
417	}
418	return
419}
420
421func 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) {
422	r1, _, e1 := syscall.Syscall12(procChangeServiceConfigW.Addr(), 11, 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)), 0)
423	if r1 == 0 {
424		err = errnoErr(e1)
425	}
426	return
427}
428
429func checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) {
430	r1, _, e1 := syscall.Syscall(procCheckTokenMembership.Addr(), 3, uintptr(tokenHandle), uintptr(unsafe.Pointer(sidToCheck)), uintptr(unsafe.Pointer(isMember)))
431	if r1 == 0 {
432		err = errnoErr(e1)
433	}
434	return
435}
436
437func CloseServiceHandle(handle Handle) (err error) {
438	r1, _, e1 := syscall.Syscall(procCloseServiceHandle.Addr(), 1, uintptr(handle), 0, 0)
439	if r1 == 0 {
440		err = errnoErr(e1)
441	}
442	return
443}
444
445func ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) {
446	r1, _, e1 := syscall.Syscall(procControlService.Addr(), 3, uintptr(service), uintptr(control), uintptr(unsafe.Pointer(status)))
447	if r1 == 0 {
448		err = errnoErr(e1)
449	}
450	return
451}
452
453func convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) {
454	r1, _, e1 := syscall.Syscall6(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), 5, uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(securityInformation), uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(strLen)), 0)
455	if r1 == 0 {
456		err = errnoErr(e1)
457	}
458	return
459}
460
461func ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) {
462	r1, _, e1 := syscall.Syscall(procConvertSidToStringSidW.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid)), 0)
463	if r1 == 0 {
464		err = errnoErr(e1)
465	}
466	return
467}
468
469func convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) {
470	var _p0 *uint16
471	_p0, err = syscall.UTF16PtrFromString(str)
472	if err != nil {
473		return
474	}
475	return _convertStringSecurityDescriptorToSecurityDescriptor(_p0, revision, sd, size)
476}
477
478func _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) {
479	r1, _, e1 := syscall.Syscall6(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), 4, uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size)), 0, 0)
480	if r1 == 0 {
481		err = errnoErr(e1)
482	}
483	return
484}
485
486func ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) {
487	r1, _, e1 := syscall.Syscall(procConvertStringSidToSidW.Addr(), 2, uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid)), 0)
488	if r1 == 0 {
489		err = errnoErr(e1)
490	}
491	return
492}
493
494func CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) {
495	r1, _, e1 := syscall.Syscall(procCopySid.Addr(), 3, uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid)))
496	if r1 == 0 {
497		err = errnoErr(e1)
498	}
499	return
500}
501
502func 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) {
503	r0, _, e1 := syscall.Syscall15(procCreateServiceW.Addr(), 13, 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)), 0, 0)
504	handle = Handle(r0)
505	if handle == 0 {
506		err = errnoErr(e1)
507	}
508	return
509}
510
511func createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) {
512	r1, _, e1 := syscall.Syscall6(procCreateWellKnownSid.Addr(), 4, uintptr(sidType), uintptr(unsafe.Pointer(domainSid)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sizeSid)), 0, 0)
513	if r1 == 0 {
514		err = errnoErr(e1)
515	}
516	return
517}
518
519func CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) {
520	r1, _, e1 := syscall.Syscall6(procCryptAcquireContextW.Addr(), 5, uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags), 0)
521	if r1 == 0 {
522		err = errnoErr(e1)
523	}
524	return
525}
526
527func CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) {
528	r1, _, e1 := syscall.Syscall(procCryptGenRandom.Addr(), 3, uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf)))
529	if r1 == 0 {
530		err = errnoErr(e1)
531	}
532	return
533}
534
535func CryptReleaseContext(provhandle Handle, flags uint32) (err error) {
536	r1, _, e1 := syscall.Syscall(procCryptReleaseContext.Addr(), 2, uintptr(provhandle), uintptr(flags), 0)
537	if r1 == 0 {
538		err = errnoErr(e1)
539	}
540	return
541}
542
543func DeleteService(service Handle) (err error) {
544	r1, _, e1 := syscall.Syscall(procDeleteService.Addr(), 1, uintptr(service), 0, 0)
545	if r1 == 0 {
546		err = errnoErr(e1)
547	}
548	return
549}
550
551func DeregisterEventSource(handle Handle) (err error) {
552	r1, _, e1 := syscall.Syscall(procDeregisterEventSource.Addr(), 1, uintptr(handle), 0, 0)
553	if r1 == 0 {
554		err = errnoErr(e1)
555	}
556	return
557}
558
559func DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) {
560	r1, _, e1 := syscall.Syscall6(procDuplicateTokenEx.Addr(), 6, uintptr(existingToken), uintptr(desiredAccess), uintptr(unsafe.Pointer(tokenAttributes)), uintptr(impersonationLevel), uintptr(tokenType), uintptr(unsafe.Pointer(newToken)))
561	if r1 == 0 {
562		err = errnoErr(e1)
563	}
564	return
565}
566
567func EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) {
568	r1, _, e1 := syscall.Syscall12(procEnumServicesStatusExW.Addr(), 10, 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)), 0, 0)
569	if r1 == 0 {
570		err = errnoErr(e1)
571	}
572	return
573}
574
575func EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) {
576	r0, _, _ := syscall.Syscall(procEqualSid.Addr(), 2, uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2)), 0)
577	isEqual = r0 != 0
578	return
579}
580
581func FreeSid(sid *SID) (err error) {
582	r1, _, e1 := syscall.Syscall(procFreeSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0)
583	if r1 != 0 {
584		err = errnoErr(e1)
585	}
586	return
587}
588
589func GetLengthSid(sid *SID) (len uint32) {
590	r0, _, _ := syscall.Syscall(procGetLengthSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0)
591	len = uint32(r0)
592	return
593}
594
595func getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) {
596	var _p0 *uint16
597	_p0, ret = syscall.UTF16PtrFromString(objectName)
598	if ret != nil {
599		return
600	}
601	return _getNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl, sd)
602}
603
604func _getNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) {
605	r0, _, _ := syscall.Syscall9(procGetNamedSecurityInfoW.Addr(), 8, 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)), 0)
606	if r0 != 0 {
607		ret = syscall.Errno(r0)
608	}
609	return
610}
611
612func getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) {
613	r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(control)), uintptr(unsafe.Pointer(revision)))
614	if r1 == 0 {
615		err = errnoErr(e1)
616	}
617	return
618}
619
620func getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) {
621	var _p0 uint32
622	if *daclPresent {
623		_p0 = 1
624	}
625	var _p1 uint32
626	if *daclDefaulted {
627		_p1 = 1
628	}
629	r1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0)
630	*daclPresent = _p0 != 0
631	*daclDefaulted = _p1 != 0
632	if r1 == 0 {
633		err = errnoErr(e1)
634	}
635	return
636}
637
638func getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) {
639	var _p0 uint32
640	if *groupDefaulted {
641		_p0 = 1
642	}
643	r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(&_p0)))
644	*groupDefaulted = _p0 != 0
645	if r1 == 0 {
646		err = errnoErr(e1)
647	}
648	return
649}
650
651func getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) {
652	r0, _, _ := syscall.Syscall(procGetSecurityDescriptorLength.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0)
653	len = uint32(r0)
654	return
655}
656
657func getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) {
658	var _p0 uint32
659	if *ownerDefaulted {
660		_p0 = 1
661	}
662	r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(&_p0)))
663	*ownerDefaulted = _p0 != 0
664	if r1 == 0 {
665		err = errnoErr(e1)
666	}
667	return
668}
669
670func getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) {
671	r0, _, _ := syscall.Syscall(procGetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0)
672	if r0 != 0 {
673		ret = syscall.Errno(r0)
674	}
675	return
676}
677
678func getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) {
679	var _p0 uint32
680	if *saclPresent {
681		_p0 = 1
682	}
683	var _p1 uint32
684	if *saclDefaulted {
685		_p1 = 1
686	}
687	r1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0)
688	*saclPresent = _p0 != 0
689	*saclDefaulted = _p1 != 0
690	if r1 == 0 {
691		err = errnoErr(e1)
692	}
693	return
694}
695
696func getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) {
697	r0, _, _ := syscall.Syscall9(procGetSecurityInfo.Addr(), 8, 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)), 0)
698	if r0 != 0 {
699		ret = syscall.Errno(r0)
700	}
701	return
702}
703
704func getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) {
705	r0, _, _ := syscall.Syscall(procGetSidIdentifierAuthority.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0)
706	authority = (*SidIdentifierAuthority)(unsafe.Pointer(r0))
707	return
708}
709
710func getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) {
711	r0, _, _ := syscall.Syscall(procGetSidSubAuthority.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(index), 0)
712	subAuthority = (*uint32)(unsafe.Pointer(r0))
713	return
714}
715
716func getSidSubAuthorityCount(sid *SID) (count *uint8) {
717	r0, _, _ := syscall.Syscall(procGetSidSubAuthorityCount.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0)
718	count = (*uint8)(unsafe.Pointer(r0))
719	return
720}
721
722func GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) {
723	r1, _, e1 := syscall.Syscall6(procGetTokenInformation.Addr(), 5, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)), 0)
724	if r1 == 0 {
725		err = errnoErr(e1)
726	}
727	return
728}
729
730func ImpersonateSelf(impersonationlevel uint32) (err error) {
731	r1, _, e1 := syscall.Syscall(procImpersonateSelf.Addr(), 1, uintptr(impersonationlevel), 0, 0)
732	if r1 == 0 {
733		err = errnoErr(e1)
734	}
735	return
736}
737
738func initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) {
739	r1, _, e1 := syscall.Syscall(procInitializeSecurityDescriptor.Addr(), 2, uintptr(unsafe.Pointer(absoluteSD)), uintptr(revision), 0)
740	if r1 == 0 {
741		err = errnoErr(e1)
742	}
743	return
744}
745
746func InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) {
747	var _p0 uint32
748	if forceAppsClosed {
749		_p0 = 1
750	}
751	var _p1 uint32
752	if rebootAfterShutdown {
753		_p1 = 1
754	}
755	r1, _, e1 := syscall.Syscall6(procInitiateSystemShutdownExW.Addr(), 6, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(message)), uintptr(timeout), uintptr(_p0), uintptr(_p1), uintptr(reason))
756	if r1 == 0 {
757		err = errnoErr(e1)
758	}
759	return
760}
761
762func isTokenRestricted(tokenHandle Token) (ret bool, err error) {
763	r0, _, e1 := syscall.Syscall(procIsTokenRestricted.Addr(), 1, uintptr(tokenHandle), 0, 0)
764	ret = r0 != 0
765	if !ret {
766		err = errnoErr(e1)
767	}
768	return
769}
770
771func isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) {
772	r0, _, _ := syscall.Syscall(procIsValidSecurityDescriptor.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0)
773	isValid = r0 != 0
774	return
775}
776
777func isValidSid(sid *SID) (isValid bool) {
778	r0, _, _ := syscall.Syscall(procIsValidSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0)
779	isValid = r0 != 0
780	return
781}
782
783func isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) {
784	r0, _, _ := syscall.Syscall(procIsWellKnownSid.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(sidType), 0)
785	isWellKnown = r0 != 0
786	return
787}
788
789func LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) {
790	r1, _, e1 := syscall.Syscall9(procLookupAccountNameW.Addr(), 7, 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)), 0, 0)
791	if r1 == 0 {
792		err = errnoErr(e1)
793	}
794	return
795}
796
797func LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) {
798	r1, _, e1 := syscall.Syscall9(procLookupAccountSidW.Addr(), 7, 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)), 0, 0)
799	if r1 == 0 {
800		err = errnoErr(e1)
801	}
802	return
803}
804
805func LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) {
806	r1, _, e1 := syscall.Syscall(procLookupPrivilegeValueW.Addr(), 3, uintptr(unsafe.Pointer(systemname)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid)))
807	if r1 == 0 {
808		err = errnoErr(e1)
809	}
810	return
811}
812
813func 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) {
814	r1, _, e1 := syscall.Syscall12(procMakeAbsoluteSD.Addr(), 11, 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)), 0)
815	if r1 == 0 {
816		err = errnoErr(e1)
817	}
818	return
819}
820
821func makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) {
822	r1, _, e1 := syscall.Syscall(procMakeSelfRelativeSD.Addr(), 3, uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(selfRelativeSDSize)))
823	if r1 == 0 {
824		err = errnoErr(e1)
825	}
826	return
827}
828
829func NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) {
830	r0, _, _ := syscall.Syscall(procNotifyServiceStatusChangeW.Addr(), 3, uintptr(service), uintptr(notifyMask), uintptr(unsafe.Pointer(notifier)))
831	if r0 != 0 {
832		ret = syscall.Errno(r0)
833	}
834	return
835}
836
837func OpenProcessToken(process Handle, access uint32, token *Token) (err error) {
838	r1, _, e1 := syscall.Syscall(procOpenProcessToken.Addr(), 3, uintptr(process), uintptr(access), uintptr(unsafe.Pointer(token)))
839	if r1 == 0 {
840		err = errnoErr(e1)
841	}
842	return
843}
844
845func OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) {
846	r0, _, e1 := syscall.Syscall(procOpenSCManagerW.Addr(), 3, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(databaseName)), uintptr(access))
847	handle = Handle(r0)
848	if handle == 0 {
849		err = errnoErr(e1)
850	}
851	return
852}
853
854func OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) {
855	r0, _, e1 := syscall.Syscall(procOpenServiceW.Addr(), 3, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(access))
856	handle = Handle(r0)
857	if handle == 0 {
858		err = errnoErr(e1)
859	}
860	return
861}
862
863func OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) {
864	var _p0 uint32
865	if openAsSelf {
866		_p0 = 1
867	}
868	r1, _, e1 := syscall.Syscall6(procOpenThreadToken.Addr(), 4, uintptr(thread), uintptr(access), uintptr(_p0), uintptr(unsafe.Pointer(token)), 0, 0)
869	if r1 == 0 {
870		err = errnoErr(e1)
871	}
872	return
873}
874
875func QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) {
876	r1, _, e1 := syscall.Syscall6(procQueryServiceConfig2W.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0)
877	if r1 == 0 {
878		err = errnoErr(e1)
879	}
880	return
881}
882
883func QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) {
884	r1, _, e1 := syscall.Syscall6(procQueryServiceConfigW.Addr(), 4, uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0)
885	if r1 == 0 {
886		err = errnoErr(e1)
887	}
888	return
889}
890
891func QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) {
892	r1, _, e1 := syscall.Syscall6(procQueryServiceLockStatusW.Addr(), 4, uintptr(mgr), uintptr(unsafe.Pointer(lockStatus)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0)
893	if r1 == 0 {
894		err = errnoErr(e1)
895	}
896	return
897}
898
899func QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) {
900	r1, _, e1 := syscall.Syscall(procQueryServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(status)), 0)
901	if r1 == 0 {
902		err = errnoErr(e1)
903	}
904	return
905}
906
907func QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) {
908	r1, _, e1 := syscall.Syscall6(procQueryServiceStatusEx.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0)
909	if r1 == 0 {
910		err = errnoErr(e1)
911	}
912	return
913}
914
915func RegCloseKey(key Handle) (regerrno error) {
916	r0, _, _ := syscall.Syscall(procRegCloseKey.Addr(), 1, uintptr(key), 0, 0)
917	if r0 != 0 {
918		regerrno = syscall.Errno(r0)
919	}
920	return
921}
922
923func RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) {
924	r0, _, _ := syscall.Syscall9(procRegEnumKeyExW.Addr(), 8, 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)), 0)
925	if r0 != 0 {
926		regerrno = syscall.Errno(r0)
927	}
928	return
929}
930
931func RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) {
932	r0, _, _ := syscall.Syscall6(procRegOpenKeyExW.Addr(), 5, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result)), 0)
933	if r0 != 0 {
934		regerrno = syscall.Errno(r0)
935	}
936	return
937}
938
939func 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) {
940	r0, _, _ := syscall.Syscall12(procRegQueryInfoKeyW.Addr(), 12, 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)))
941	if r0 != 0 {
942		regerrno = syscall.Errno(r0)
943	}
944	return
945}
946
947func RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) {
948	r0, _, _ := syscall.Syscall6(procRegQueryValueExW.Addr(), 6, uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen)))
949	if r0 != 0 {
950		regerrno = syscall.Errno(r0)
951	}
952	return
953}
954
955func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) {
956	r0, _, e1 := syscall.Syscall(procRegisterEventSourceW.Addr(), 2, uintptr(unsafe.Pointer(uncServerName)), uintptr(unsafe.Pointer(sourceName)), 0)
957	handle = Handle(r0)
958	if handle == 0 {
959		err = errnoErr(e1)
960	}
961	return
962}
963
964func ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) {
965	r1, _, e1 := syscall.Syscall9(procReportEventW.Addr(), 9, uintptr(log), uintptr(etype), uintptr(category), uintptr(eventId), uintptr(usrSId), uintptr(numStrings), uintptr(dataSize), uintptr(unsafe.Pointer(strings)), uintptr(unsafe.Pointer(rawData)))
966	if r1 == 0 {
967		err = errnoErr(e1)
968	}
969	return
970}
971
972func RevertToSelf() (err error) {
973	r1, _, e1 := syscall.Syscall(procRevertToSelf.Addr(), 0, 0, 0, 0)
974	if r1 == 0 {
975		err = errnoErr(e1)
976	}
977	return
978}
979
980func setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) {
981	r0, _, _ := syscall.Syscall6(procSetEntriesInAclW.Addr(), 4, uintptr(countExplicitEntries), uintptr(unsafe.Pointer(explicitEntries)), uintptr(unsafe.Pointer(oldACL)), uintptr(unsafe.Pointer(newACL)), 0, 0)
982	if r0 != 0 {
983		ret = syscall.Errno(r0)
984	}
985	return
986}
987
988func SetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) {
989	r1, _, e1 := syscall.Syscall(procSetKernelObjectSecurity.Addr(), 3, uintptr(handle), uintptr(securityInformation), uintptr(unsafe.Pointer(securityDescriptor)))
990	if r1 == 0 {
991		err = errnoErr(e1)
992	}
993	return
994}
995
996func SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) {
997	var _p0 *uint16
998	_p0, ret = syscall.UTF16PtrFromString(objectName)
999	if ret != nil {
1000		return
1001	}
1002	return _SetNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl)
1003}
1004
1005func _SetNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) {
1006	r0, _, _ := syscall.Syscall9(procSetNamedSecurityInfoW.Addr(), 7, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0)
1007	if r0 != 0 {
1008		ret = syscall.Errno(r0)
1009	}
1010	return
1011}
1012
1013func setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) {
1014	r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(controlBitsOfInterest), uintptr(controlBitsToSet))
1015	if r1 == 0 {
1016		err = errnoErr(e1)
1017	}
1018	return
1019}
1020
1021func setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) {
1022	var _p0 uint32
1023	if daclPresent {
1024		_p0 = 1
1025	}
1026	var _p1 uint32
1027	if daclDefaulted {
1028		_p1 = 1
1029	}
1030	r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(dacl)), uintptr(_p1), 0, 0)
1031	if r1 == 0 {
1032		err = errnoErr(e1)
1033	}
1034	return
1035}
1036
1037func setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) {
1038	var _p0 uint32
1039	if groupDefaulted {
1040		_p0 = 1
1041	}
1042	r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(_p0))
1043	if r1 == 0 {
1044		err = errnoErr(e1)
1045	}
1046	return
1047}
1048
1049func setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) {
1050	var _p0 uint32
1051	if ownerDefaulted {
1052		_p0 = 1
1053	}
1054	r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(_p0))
1055	if r1 == 0 {
1056		err = errnoErr(e1)
1057	}
1058	return
1059}
1060
1061func setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) {
1062	syscall.Syscall(procSetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0)
1063	return
1064}
1065
1066func setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) {
1067	var _p0 uint32
1068	if saclPresent {
1069		_p0 = 1
1070	}
1071	var _p1 uint32
1072	if saclDefaulted {
1073		_p1 = 1
1074	}
1075	r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(sacl)), uintptr(_p1), 0, 0)
1076	if r1 == 0 {
1077		err = errnoErr(e1)
1078	}
1079	return
1080}
1081
1082func SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) {
1083	r0, _, _ := syscall.Syscall9(procSetSecurityInfo.Addr(), 7, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0)
1084	if r0 != 0 {
1085		ret = syscall.Errno(r0)
1086	}
1087	return
1088}
1089
1090func SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) {
1091	r1, _, e1 := syscall.Syscall(procSetServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(serviceStatus)), 0)
1092	if r1 == 0 {
1093		err = errnoErr(e1)
1094	}
1095	return
1096}
1097
1098func SetThreadToken(thread *Handle, token Token) (err error) {
1099	r1, _, e1 := syscall.Syscall(procSetThreadToken.Addr(), 2, uintptr(unsafe.Pointer(thread)), uintptr(token), 0)
1100	if r1 == 0 {
1101		err = errnoErr(e1)
1102	}
1103	return
1104}
1105
1106func SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) {
1107	r1, _, e1 := syscall.Syscall6(procSetTokenInformation.Addr(), 4, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), 0, 0)
1108	if r1 == 0 {
1109		err = errnoErr(e1)
1110	}
1111	return
1112}
1113
1114func StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) {
1115	r1, _, e1 := syscall.Syscall(procStartServiceCtrlDispatcherW.Addr(), 1, uintptr(unsafe.Pointer(serviceTable)), 0, 0)
1116	if r1 == 0 {
1117		err = errnoErr(e1)
1118	}
1119	return
1120}
1121
1122func StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) {
1123	r1, _, e1 := syscall.Syscall(procStartServiceW.Addr(), 3, uintptr(service), uintptr(numArgs), uintptr(unsafe.Pointer(argVectors)))
1124	if r1 == 0 {
1125		err = errnoErr(e1)
1126	}
1127	return
1128}
1129
1130func CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) {
1131	r1, _, e1 := syscall.Syscall6(procCertAddCertificateContextToStore.Addr(), 4, uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext)), 0, 0)
1132	if r1 == 0 {
1133		err = errnoErr(e1)
1134	}
1135	return
1136}
1137
1138func CertCloseStore(store Handle, flags uint32) (err error) {
1139	r1, _, e1 := syscall.Syscall(procCertCloseStore.Addr(), 2, uintptr(store), uintptr(flags), 0)
1140	if r1 == 0 {
1141		err = errnoErr(e1)
1142	}
1143	return
1144}
1145
1146func CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) {
1147	r0, _, e1 := syscall.Syscall(procCertCreateCertificateContext.Addr(), 3, uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen))
1148	context = (*CertContext)(unsafe.Pointer(r0))
1149	if context == nil {
1150		err = errnoErr(e1)
1151	}
1152	return
1153}
1154
1155func CertDeleteCertificateFromStore(certContext *CertContext) (err error) {
1156	r1, _, e1 := syscall.Syscall(procCertDeleteCertificateFromStore.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0)
1157	if r1 == 0 {
1158		err = errnoErr(e1)
1159	}
1160	return
1161}
1162
1163func CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) {
1164	r0, _, e1 := syscall.Syscall(procCertEnumCertificatesInStore.Addr(), 2, uintptr(store), uintptr(unsafe.Pointer(prevContext)), 0)
1165	context = (*CertContext)(unsafe.Pointer(r0))
1166	if context == nil {
1167		err = errnoErr(e1)
1168	}
1169	return
1170}
1171
1172func CertFreeCertificateChain(ctx *CertChainContext) {
1173	syscall.Syscall(procCertFreeCertificateChain.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0)
1174	return
1175}
1176
1177func CertFreeCertificateContext(ctx *CertContext) (err error) {
1178	r1, _, e1 := syscall.Syscall(procCertFreeCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0)
1179	if r1 == 0 {
1180		err = errnoErr(e1)
1181	}
1182	return
1183}
1184
1185func CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) {
1186	r1, _, e1 := syscall.Syscall9(procCertGetCertificateChain.Addr(), 8, uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx)), 0)
1187	if r1 == 0 {
1188		err = errnoErr(e1)
1189	}
1190	return
1191}
1192
1193func CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) {
1194	r0, _, e1 := syscall.Syscall6(procCertOpenStore.Addr(), 5, uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para), 0)
1195	handle = Handle(r0)
1196	if handle == 0 {
1197		err = errnoErr(e1)
1198	}
1199	return
1200}
1201
1202func CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) {
1203	r0, _, e1 := syscall.Syscall(procCertOpenSystemStoreW.Addr(), 2, uintptr(hprov), uintptr(unsafe.Pointer(name)), 0)
1204	store = Handle(r0)
1205	if store == 0 {
1206		err = errnoErr(e1)
1207	}
1208	return
1209}
1210
1211func CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) {
1212	r1, _, e1 := syscall.Syscall6(procCertVerifyCertificateChainPolicy.Addr(), 4, uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status)), 0, 0)
1213	if r1 == 0 {
1214		err = errnoErr(e1)
1215	}
1216	return
1217}
1218
1219func DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) {
1220	r0, _, _ := syscall.Syscall(procDnsNameCompare_W.Addr(), 2, uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2)), 0)
1221	same = r0 != 0
1222	return
1223}
1224
1225func DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) {
1226	var _p0 *uint16
1227	_p0, status = syscall.UTF16PtrFromString(name)
1228	if status != nil {
1229		return
1230	}
1231	return _DnsQuery(_p0, qtype, options, extra, qrs, pr)
1232}
1233
1234func _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) {
1235	r0, _, _ := syscall.Syscall6(procDnsQuery_W.Addr(), 6, uintptr(unsafe.Pointer(name)), uintptr(qtype), uintptr(options), uintptr(unsafe.Pointer(extra)), uintptr(unsafe.Pointer(qrs)), uintptr(unsafe.Pointer(pr)))
1236	if r0 != 0 {
1237		status = syscall.Errno(r0)
1238	}
1239	return
1240}
1241
1242func DnsRecordListFree(rl *DNSRecord, freetype uint32) {
1243	syscall.Syscall(procDnsRecordListFree.Addr(), 2, uintptr(unsafe.Pointer(rl)), uintptr(freetype), 0)
1244	return
1245}
1246
1247func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) {
1248	r0, _, _ := syscall.Syscall6(procGetAdaptersAddresses.Addr(), 5, uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)), 0)
1249	if r0 != 0 {
1250		errcode = syscall.Errno(r0)
1251	}
1252	return
1253}
1254
1255func GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) {
1256	r0, _, _ := syscall.Syscall(procGetAdaptersInfo.Addr(), 2, uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol)), 0)
1257	if r0 != 0 {
1258		errcode = syscall.Errno(r0)
1259	}
1260	return
1261}
1262
1263func GetIfEntry(pIfRow *MibIfRow) (errcode error) {
1264	r0, _, _ := syscall.Syscall(procGetIfEntry.Addr(), 1, uintptr(unsafe.Pointer(pIfRow)), 0, 0)
1265	if r0 != 0 {
1266		errcode = syscall.Errno(r0)
1267	}
1268	return
1269}
1270
1271func AssignProcessToJobObject(job Handle, process Handle) (err error) {
1272	r1, _, e1 := syscall.Syscall(procAssignProcessToJobObject.Addr(), 2, uintptr(job), uintptr(process), 0)
1273	if r1 == 0 {
1274		err = errnoErr(e1)
1275	}
1276	return
1277}
1278
1279func CancelIo(s Handle) (err error) {
1280	r1, _, e1 := syscall.Syscall(procCancelIo.Addr(), 1, uintptr(s), 0, 0)
1281	if r1 == 0 {
1282		err = errnoErr(e1)
1283	}
1284	return
1285}
1286
1287func CancelIoEx(s Handle, o *Overlapped) (err error) {
1288	r1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(s), uintptr(unsafe.Pointer(o)), 0)
1289	if r1 == 0 {
1290		err = errnoErr(e1)
1291	}
1292	return
1293}
1294
1295func CloseHandle(handle Handle) (err error) {
1296	r1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0)
1297	if r1 == 0 {
1298		err = errnoErr(e1)
1299	}
1300	return
1301}
1302
1303func CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) {
1304	r1, _, e1 := syscall.Syscall(procCreateDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa)), 0)
1305	if r1 == 0 {
1306		err = errnoErr(e1)
1307	}
1308	return
1309}
1310
1311func CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) {
1312	r0, _, e1 := syscall.Syscall6(procCreateEventExW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0)
1313	handle = Handle(r0)
1314	if handle == 0 {
1315		err = errnoErr(e1)
1316	}
1317	return
1318}
1319
1320func CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) {
1321	r0, _, e1 := syscall.Syscall6(procCreateEventW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name)), 0, 0)
1322	handle = Handle(r0)
1323	if handle == 0 {
1324		err = errnoErr(e1)
1325	}
1326	return
1327}
1328
1329func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) {
1330	r0, _, e1 := syscall.Syscall6(procCreateFileMappingW.Addr(), 6, uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name)))
1331	handle = Handle(r0)
1332	if handle == 0 {
1333		err = errnoErr(e1)
1334	}
1335	return
1336}
1337
1338func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) {
1339	r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0)
1340	handle = Handle(r0)
1341	if handle == InvalidHandle {
1342		err = errnoErr(e1)
1343	}
1344	return
1345}
1346
1347func CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) {
1348	r1, _, e1 := syscall.Syscall(procCreateHardLinkW.Addr(), 3, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved))
1349	if r1&0xff == 0 {
1350		err = errnoErr(e1)
1351	}
1352	return
1353}
1354
1355func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uint32, threadcnt uint32) (handle Handle, err error) {
1356	r0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt), 0, 0)
1357	handle = Handle(r0)
1358	if handle == 0 {
1359		err = errnoErr(e1)
1360	}
1361	return
1362}
1363
1364func CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) {
1365	r0, _, e1 := syscall.Syscall(procCreateJobObjectW.Addr(), 2, uintptr(unsafe.Pointer(jobAttr)), uintptr(unsafe.Pointer(name)), 0)
1366	handle = Handle(r0)
1367	if handle == 0 {
1368		err = errnoErr(e1)
1369	}
1370	return
1371}
1372
1373func CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) {
1374	r0, _, e1 := syscall.Syscall6(procCreateMutexExW.Addr(), 4, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0)
1375	handle = Handle(r0)
1376	if handle == 0 {
1377		err = errnoErr(e1)
1378	}
1379	return
1380}
1381
1382func CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) {
1383	var _p0 uint32
1384	if initialOwner {
1385		_p0 = 1
1386	}
1387	r0, _, e1 := syscall.Syscall(procCreateMutexW.Addr(), 3, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(_p0), uintptr(unsafe.Pointer(name)))
1388	handle = Handle(r0)
1389	if handle == 0 {
1390		err = errnoErr(e1)
1391	}
1392	return
1393}
1394
1395func CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) {
1396	r1, _, e1 := syscall.Syscall6(procCreatePipe.Addr(), 4, uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size), 0, 0)
1397	if r1 == 0 {
1398		err = errnoErr(e1)
1399	}
1400	return
1401}
1402
1403func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) {
1404	var _p0 uint32
1405	if inheritHandles {
1406		_p0 = 1
1407	}
1408	r1, _, e1 := syscall.Syscall12(procCreateProcessW.Addr(), 10, 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)), 0, 0)
1409	if r1 == 0 {
1410		err = errnoErr(e1)
1411	}
1412	return
1413}
1414
1415func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) {
1416	r1, _, e1 := syscall.Syscall(procCreateSymbolicLinkW.Addr(), 3, uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags))
1417	if r1&0xff == 0 {
1418		err = errnoErr(e1)
1419	}
1420	return
1421}
1422
1423func CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) {
1424	r0, _, e1 := syscall.Syscall(procCreateToolhelp32Snapshot.Addr(), 2, uintptr(flags), uintptr(processId), 0)
1425	handle = Handle(r0)
1426	if handle == InvalidHandle {
1427		err = errnoErr(e1)
1428	}
1429	return
1430}
1431
1432func DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) {
1433	r1, _, e1 := syscall.Syscall(procDefineDosDeviceW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)))
1434	if r1 == 0 {
1435		err = errnoErr(e1)
1436	}
1437	return
1438}
1439
1440func DeleteFile(path *uint16) (err error) {
1441	r1, _, e1 := syscall.Syscall(procDeleteFileW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)
1442	if r1 == 0 {
1443		err = errnoErr(e1)
1444	}
1445	return
1446}
1447
1448func DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) {
1449	r1, _, e1 := syscall.Syscall(procDeleteVolumeMountPointW.Addr(), 1, uintptr(unsafe.Pointer(volumeMountPoint)), 0, 0)
1450	if r1 == 0 {
1451		err = errnoErr(e1)
1452	}
1453	return
1454}
1455
1456func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) {
1457	r1, _, e1 := syscall.Syscall9(procDeviceIoControl.Addr(), 8, uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped)), 0)
1458	if r1 == 0 {
1459		err = errnoErr(e1)
1460	}
1461	return
1462}
1463
1464func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) {
1465	var _p0 uint32
1466	if bInheritHandle {
1467		_p0 = 1
1468	}
1469	r1, _, e1 := syscall.Syscall9(procDuplicateHandle.Addr(), 7, uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions), 0, 0)
1470	if r1 == 0 {
1471		err = errnoErr(e1)
1472	}
1473	return
1474}
1475
1476func ExitProcess(exitcode uint32) {
1477	syscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0)
1478	return
1479}
1480
1481func FindClose(handle Handle) (err error) {
1482	r1, _, e1 := syscall.Syscall(procFindClose.Addr(), 1, uintptr(handle), 0, 0)
1483	if r1 == 0 {
1484		err = errnoErr(e1)
1485	}
1486	return
1487}
1488
1489func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) {
1490	r0, _, e1 := syscall.Syscall(procFindFirstFileW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)), 0)
1491	handle = Handle(r0)
1492	if handle == InvalidHandle {
1493		err = errnoErr(e1)
1494	}
1495	return
1496}
1497
1498func FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) {
1499	r0, _, e1 := syscall.Syscall(procFindFirstVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength))
1500	handle = Handle(r0)
1501	if handle == InvalidHandle {
1502		err = errnoErr(e1)
1503	}
1504	return
1505}
1506
1507func FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) {
1508	r0, _, e1 := syscall.Syscall(procFindFirstVolumeW.Addr(), 2, uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength), 0)
1509	handle = Handle(r0)
1510	if handle == InvalidHandle {
1511		err = errnoErr(e1)
1512	}
1513	return
1514}
1515
1516func findNextFile1(handle Handle, data *win32finddata1) (err error) {
1517	r1, _, e1 := syscall.Syscall(procFindNextFileW.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0)
1518	if r1 == 0 {
1519		err = errnoErr(e1)
1520	}
1521	return
1522}
1523
1524func FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) {
1525	r1, _, e1 := syscall.Syscall(procFindNextVolumeMountPointW.Addr(), 3, uintptr(findVolumeMountPoint), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength))
1526	if r1 == 0 {
1527		err = errnoErr(e1)
1528	}
1529	return
1530}
1531
1532func FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) {
1533	r1, _, e1 := syscall.Syscall(procFindNextVolumeW.Addr(), 3, uintptr(findVolume), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength))
1534	if r1 == 0 {
1535		err = errnoErr(e1)
1536	}
1537	return
1538}
1539
1540func FindVolumeClose(findVolume Handle) (err error) {
1541	r1, _, e1 := syscall.Syscall(procFindVolumeClose.Addr(), 1, uintptr(findVolume), 0, 0)
1542	if r1 == 0 {
1543		err = errnoErr(e1)
1544	}
1545	return
1546}
1547
1548func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) {
1549	r1, _, e1 := syscall.Syscall(procFindVolumeMountPointClose.Addr(), 1, uintptr(findVolumeMountPoint), 0, 0)
1550	if r1 == 0 {
1551		err = errnoErr(e1)
1552	}
1553	return
1554}
1555
1556func FlushFileBuffers(handle Handle) (err error) {
1557	r1, _, e1 := syscall.Syscall(procFlushFileBuffers.Addr(), 1, uintptr(handle), 0, 0)
1558	if r1 == 0 {
1559		err = errnoErr(e1)
1560	}
1561	return
1562}
1563
1564func FlushViewOfFile(addr uintptr, length uintptr) (err error) {
1565	r1, _, e1 := syscall.Syscall(procFlushViewOfFile.Addr(), 2, uintptr(addr), uintptr(length), 0)
1566	if r1 == 0 {
1567		err = errnoErr(e1)
1568	}
1569	return
1570}
1571
1572func FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) {
1573	var _p0 *uint16
1574	if len(buf) > 0 {
1575		_p0 = &buf[0]
1576	}
1577	r0, _, e1 := syscall.Syscall9(procFormatMessageW.Addr(), 7, uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args)), 0, 0)
1578	n = uint32(r0)
1579	if n == 0 {
1580		err = errnoErr(e1)
1581	}
1582	return
1583}
1584
1585func FreeEnvironmentStrings(envs *uint16) (err error) {
1586	r1, _, e1 := syscall.Syscall(procFreeEnvironmentStringsW.Addr(), 1, uintptr(unsafe.Pointer(envs)), 0, 0)
1587	if r1 == 0 {
1588		err = errnoErr(e1)
1589	}
1590	return
1591}
1592
1593func FreeLibrary(handle Handle) (err error) {
1594	r1, _, e1 := syscall.Syscall(procFreeLibrary.Addr(), 1, uintptr(handle), 0, 0)
1595	if r1 == 0 {
1596		err = errnoErr(e1)
1597	}
1598	return
1599}
1600
1601func GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) {
1602	r1, _, e1 := syscall.Syscall(procGenerateConsoleCtrlEvent.Addr(), 2, uintptr(ctrlEvent), uintptr(processGroupID), 0)
1603	if r1 == 0 {
1604		err = errnoErr(e1)
1605	}
1606	return
1607}
1608
1609func GetACP() (acp uint32) {
1610	r0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0)
1611	acp = uint32(r0)
1612	return
1613}
1614
1615func GetCommandLine() (cmd *uint16) {
1616	r0, _, _ := syscall.Syscall(procGetCommandLineW.Addr(), 0, 0, 0, 0)
1617	cmd = (*uint16)(unsafe.Pointer(r0))
1618	return
1619}
1620
1621func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) {
1622	r1, _, e1 := syscall.Syscall(procGetComputerNameExW.Addr(), 3, uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)))
1623	if r1 == 0 {
1624		err = errnoErr(e1)
1625	}
1626	return
1627}
1628
1629func GetComputerName(buf *uint16, n *uint32) (err error) {
1630	r1, _, e1 := syscall.Syscall(procGetComputerNameW.Addr(), 2, uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)), 0)
1631	if r1 == 0 {
1632		err = errnoErr(e1)
1633	}
1634	return
1635}
1636
1637func GetConsoleMode(console Handle, mode *uint32) (err error) {
1638	r1, _, e1 := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(mode)), 0)
1639	if r1 == 0 {
1640		err = errnoErr(e1)
1641	}
1642	return
1643}
1644
1645func GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) {
1646	r1, _, e1 := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(info)), 0)
1647	if r1 == 0 {
1648		err = errnoErr(e1)
1649	}
1650	return
1651}
1652
1653func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) {
1654	r0, _, e1 := syscall.Syscall(procGetCurrentDirectoryW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0)
1655	n = uint32(r0)
1656	if n == 0 {
1657		err = errnoErr(e1)
1658	}
1659	return
1660}
1661
1662func GetCurrentProcessId() (pid uint32) {
1663	r0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0)
1664	pid = uint32(r0)
1665	return
1666}
1667
1668func GetCurrentThreadId() (id uint32) {
1669	r0, _, _ := syscall.Syscall(procGetCurrentThreadId.Addr(), 0, 0, 0, 0)
1670	id = uint32(r0)
1671	return
1672}
1673
1674func GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) {
1675	r1, _, e1 := syscall.Syscall6(procGetDiskFreeSpaceExW.Addr(), 4, uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)), 0, 0)
1676	if r1 == 0 {
1677		err = errnoErr(e1)
1678	}
1679	return
1680}
1681
1682func GetDriveType(rootPathName *uint16) (driveType uint32) {
1683	r0, _, _ := syscall.Syscall(procGetDriveTypeW.Addr(), 1, uintptr(unsafe.Pointer(rootPathName)), 0, 0)
1684	driveType = uint32(r0)
1685	return
1686}
1687
1688func GetEnvironmentStrings() (envs *uint16, err error) {
1689	r0, _, e1 := syscall.Syscall(procGetEnvironmentStringsW.Addr(), 0, 0, 0, 0)
1690	envs = (*uint16)(unsafe.Pointer(r0))
1691	if envs == nil {
1692		err = errnoErr(e1)
1693	}
1694	return
1695}
1696
1697func GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) {
1698	r0, _, e1 := syscall.Syscall(procGetEnvironmentVariableW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size))
1699	n = uint32(r0)
1700	if n == 0 {
1701		err = errnoErr(e1)
1702	}
1703	return
1704}
1705
1706func GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) {
1707	r1, _, e1 := syscall.Syscall(procGetExitCodeProcess.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(exitcode)), 0)
1708	if r1 == 0 {
1709		err = errnoErr(e1)
1710	}
1711	return
1712}
1713
1714func GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) {
1715	r1, _, e1 := syscall.Syscall(procGetFileAttributesExW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info)))
1716	if r1 == 0 {
1717		err = errnoErr(e1)
1718	}
1719	return
1720}
1721
1722func GetFileAttributes(name *uint16) (attrs uint32, err error) {
1723	r0, _, e1 := syscall.Syscall(procGetFileAttributesW.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0)
1724	attrs = uint32(r0)
1725	if attrs == INVALID_FILE_ATTRIBUTES {
1726		err = errnoErr(e1)
1727	}
1728	return
1729}
1730
1731func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) {
1732	r1, _, e1 := syscall.Syscall(procGetFileInformationByHandle.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0)
1733	if r1 == 0 {
1734		err = errnoErr(e1)
1735	}
1736	return
1737}
1738
1739func GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) {
1740	r1, _, e1 := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen), 0, 0)
1741	if r1 == 0 {
1742		err = errnoErr(e1)
1743	}
1744	return
1745}
1746
1747func GetFileType(filehandle Handle) (n uint32, err error) {
1748	r0, _, e1 := syscall.Syscall(procGetFileType.Addr(), 1, uintptr(filehandle), 0, 0)
1749	n = uint32(r0)
1750	if n == 0 {
1751		err = errnoErr(e1)
1752	}
1753	return
1754}
1755
1756func GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) {
1757	r0, _, e1 := syscall.Syscall6(procGetFinalPathNameByHandleW.Addr(), 4, uintptr(file), uintptr(unsafe.Pointer(filePath)), uintptr(filePathSize), uintptr(flags), 0, 0)
1758	n = uint32(r0)
1759	if n == 0 {
1760		err = errnoErr(e1)
1761	}
1762	return
1763}
1764
1765func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) {
1766	r0, _, e1 := syscall.Syscall6(procGetFullPathNameW.Addr(), 4, uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname)), 0, 0)
1767	n = uint32(r0)
1768	if n == 0 {
1769		err = errnoErr(e1)
1770	}
1771	return
1772}
1773
1774func GetLastError() (lasterr error) {
1775	r0, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0)
1776	if r0 != 0 {
1777		lasterr = syscall.Errno(r0)
1778	}
1779	return
1780}
1781
1782func GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) {
1783	r0, _, e1 := syscall.Syscall(procGetLogicalDriveStringsW.Addr(), 2, uintptr(bufferLength), uintptr(unsafe.Pointer(buffer)), 0)
1784	n = uint32(r0)
1785	if n == 0 {
1786		err = errnoErr(e1)
1787	}
1788	return
1789}
1790
1791func GetLogicalDrives() (drivesBitMask uint32, err error) {
1792	r0, _, e1 := syscall.Syscall(procGetLogicalDrives.Addr(), 0, 0, 0, 0)
1793	drivesBitMask = uint32(r0)
1794	if drivesBitMask == 0 {
1795		err = errnoErr(e1)
1796	}
1797	return
1798}
1799
1800func GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) {
1801	r0, _, e1 := syscall.Syscall(procGetLongPathNameW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen))
1802	n = uint32(r0)
1803	if n == 0 {
1804		err = errnoErr(e1)
1805	}
1806	return
1807}
1808
1809func GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) {
1810	r0, _, e1 := syscall.Syscall(procGetModuleFileNameW.Addr(), 3, uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size))
1811	n = uint32(r0)
1812	if n == 0 {
1813		err = errnoErr(e1)
1814	}
1815	return
1816}
1817
1818func GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) {
1819	r1, _, e1 := syscall.Syscall(procGetModuleHandleExW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(moduleName)), uintptr(unsafe.Pointer(module)))
1820	if r1 == 0 {
1821		err = errnoErr(e1)
1822	}
1823	return
1824}
1825
1826func GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) {
1827	var _p0 uint32
1828	if wait {
1829		_p0 = 1
1830	}
1831	r1, _, e1 := syscall.Syscall6(procGetOverlappedResult.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0), 0, 0)
1832	if r1 == 0 {
1833		err = errnoErr(e1)
1834	}
1835	return
1836}
1837
1838func GetPriorityClass(process Handle) (ret uint32, err error) {
1839	r0, _, e1 := syscall.Syscall(procGetPriorityClass.Addr(), 1, uintptr(process), 0, 0)
1840	ret = uint32(r0)
1841	if ret == 0 {
1842		err = errnoErr(e1)
1843	}
1844	return
1845}
1846
1847func GetProcAddress(module Handle, procname string) (proc uintptr, err error) {
1848	var _p0 *byte
1849	_p0, err = syscall.BytePtrFromString(procname)
1850	if err != nil {
1851		return
1852	}
1853	return _GetProcAddress(module, _p0)
1854}
1855
1856func _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) {
1857	r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), uintptr(unsafe.Pointer(procname)), 0)
1858	proc = uintptr(r0)
1859	if proc == 0 {
1860		err = errnoErr(e1)
1861	}
1862	return
1863}
1864
1865func GetProcessId(process Handle) (id uint32, err error) {
1866	r0, _, e1 := syscall.Syscall(procGetProcessId.Addr(), 1, uintptr(process), 0, 0)
1867	id = uint32(r0)
1868	if id == 0 {
1869		err = errnoErr(e1)
1870	}
1871	return
1872}
1873
1874func getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {
1875	r1, _, e1 := syscall.Syscall6(procGetProcessPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0)
1876	if r1 == 0 {
1877		err = errnoErr(e1)
1878	}
1879	return
1880}
1881
1882func GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) {
1883	r1, _, e1 := syscall.Syscall(procGetProcessShutdownParameters.Addr(), 2, uintptr(unsafe.Pointer(level)), uintptr(unsafe.Pointer(flags)), 0)
1884	if r1 == 0 {
1885		err = errnoErr(e1)
1886	}
1887	return
1888}
1889
1890func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) {
1891	r1, _, e1 := syscall.Syscall6(procGetProcessTimes.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)), 0)
1892	if r1 == 0 {
1893		err = errnoErr(e1)
1894	}
1895	return
1896}
1897
1898func GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) {
1899	syscall.Syscall6(procGetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(unsafe.Pointer(lpMinimumWorkingSetSize)), uintptr(unsafe.Pointer(lpMaximumWorkingSetSize)), uintptr(unsafe.Pointer(flags)), 0, 0)
1900	return
1901}
1902
1903func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uint32, overlapped **Overlapped, timeout uint32) (err error) {
1904	r1, _, e1 := syscall.Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout), 0)
1905	if r1 == 0 {
1906		err = errnoErr(e1)
1907	}
1908	return
1909}
1910
1911func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) {
1912	r0, _, e1 := syscall.Syscall(procGetShortPathNameW.Addr(), 3, uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen))
1913	n = uint32(r0)
1914	if n == 0 {
1915		err = errnoErr(e1)
1916	}
1917	return
1918}
1919
1920func GetStartupInfo(startupInfo *StartupInfo) (err error) {
1921	r1, _, e1 := syscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0)
1922	if r1 == 0 {
1923		err = errnoErr(e1)
1924	}
1925	return
1926}
1927
1928func GetStdHandle(stdhandle uint32) (handle Handle, err error) {
1929	r0, _, e1 := syscall.Syscall(procGetStdHandle.Addr(), 1, uintptr(stdhandle), 0, 0)
1930	handle = Handle(r0)
1931	if handle == InvalidHandle {
1932		err = errnoErr(e1)
1933	}
1934	return
1935}
1936
1937func getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) {
1938	r0, _, e1 := syscall.Syscall(procGetSystemDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0)
1939	len = uint32(r0)
1940	if len == 0 {
1941		err = errnoErr(e1)
1942	}
1943	return
1944}
1945
1946func getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {
1947	r1, _, e1 := syscall.Syscall6(procGetSystemPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0)
1948	if r1 == 0 {
1949		err = errnoErr(e1)
1950	}
1951	return
1952}
1953
1954func GetSystemTimeAsFileTime(time *Filetime) {
1955	syscall.Syscall(procGetSystemTimeAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0)
1956	return
1957}
1958
1959func GetSystemTimePreciseAsFileTime(time *Filetime) {
1960	syscall.Syscall(procGetSystemTimePreciseAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0)
1961	return
1962}
1963
1964func getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) {
1965	r0, _, e1 := syscall.Syscall(procGetSystemWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0)
1966	len = uint32(r0)
1967	if len == 0 {
1968		err = errnoErr(e1)
1969	}
1970	return
1971}
1972
1973func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) {
1974	r0, _, e1 := syscall.Syscall(procGetTempPathW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0)
1975	n = uint32(r0)
1976	if n == 0 {
1977		err = errnoErr(e1)
1978	}
1979	return
1980}
1981
1982func getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {
1983	r1, _, e1 := syscall.Syscall6(procGetThreadPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0)
1984	if r1 == 0 {
1985		err = errnoErr(e1)
1986	}
1987	return
1988}
1989
1990func getTickCount64() (ms uint64) {
1991	r0, _, _ := syscall.Syscall(procGetTickCount64.Addr(), 0, 0, 0, 0)
1992	ms = uint64(r0)
1993	return
1994}
1995
1996func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) {
1997	r0, _, e1 := syscall.Syscall(procGetTimeZoneInformation.Addr(), 1, uintptr(unsafe.Pointer(tzi)), 0, 0)
1998	rc = uint32(r0)
1999	if rc == 0xffffffff {
2000		err = errnoErr(e1)
2001	}
2002	return
2003}
2004
2005func getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {
2006	r1, _, e1 := syscall.Syscall6(procGetUserPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0)
2007	if r1 == 0 {
2008		err = errnoErr(e1)
2009	}
2010	return
2011}
2012
2013func GetVersion() (ver uint32, err error) {
2014	r0, _, e1 := syscall.Syscall(procGetVersion.Addr(), 0, 0, 0, 0)
2015	ver = uint32(r0)
2016	if ver == 0 {
2017		err = errnoErr(e1)
2018	}
2019	return
2020}
2021
2022func GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) {
2023	r1, _, e1 := syscall.Syscall9(procGetVolumeInformationByHandleW.Addr(), 8, 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), 0)
2024	if r1 == 0 {
2025		err = errnoErr(e1)
2026	}
2027	return
2028}
2029
2030func GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) {
2031	r1, _, e1 := syscall.Syscall9(procGetVolumeInformationW.Addr(), 8, 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), 0)
2032	if r1 == 0 {
2033		err = errnoErr(e1)
2034	}
2035	return
2036}
2037
2038func GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) {
2039	r1, _, e1 := syscall.Syscall(procGetVolumeNameForVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferlength))
2040	if r1 == 0 {
2041		err = errnoErr(e1)
2042	}
2043	return
2044}
2045
2046func GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) {
2047	r1, _, e1 := syscall.Syscall(procGetVolumePathNameW.Addr(), 3, uintptr(unsafe.Pointer(fileName)), uintptr(unsafe.Pointer(volumePathName)), uintptr(bufferLength))
2048	if r1 == 0 {
2049		err = errnoErr(e1)
2050	}
2051	return
2052}
2053
2054func GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) {
2055	r1, _, e1 := syscall.Syscall6(procGetVolumePathNamesForVolumeNameW.Addr(), 4, uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength)), 0, 0)
2056	if r1 == 0 {
2057		err = errnoErr(e1)
2058	}
2059	return
2060}
2061
2062func getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) {
2063	r0, _, e1 := syscall.Syscall(procGetWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0)
2064	len = uint32(r0)
2065	if len == 0 {
2066		err = errnoErr(e1)
2067	}
2068	return
2069}
2070
2071func IsWow64Process(handle Handle, isWow64 *bool) (err error) {
2072	var _p0 uint32
2073	if *isWow64 {
2074		_p0 = 1
2075	}
2076	r1, _, e1 := syscall.Syscall(procIsWow64Process.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(&_p0)), 0)
2077	*isWow64 = _p0 != 0
2078	if r1 == 0 {
2079		err = errnoErr(e1)
2080	}
2081	return
2082}
2083
2084func IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) {
2085	err = procIsWow64Process2.Find()
2086	if err != nil {
2087		return
2088	}
2089	r1, _, e1 := syscall.Syscall(procIsWow64Process2.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(processMachine)), uintptr(unsafe.Pointer(nativeMachine)))
2090	if r1 == 0 {
2091		err = errnoErr(e1)
2092	}
2093	return
2094}
2095
2096func LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) {
2097	var _p0 *uint16
2098	_p0, err = syscall.UTF16PtrFromString(libname)
2099	if err != nil {
2100		return
2101	}
2102	return _LoadLibraryEx(_p0, zero, flags)
2103}
2104
2105func _LoadLibraryEx(libname *uint16, zero Handle, flags uintptr) (handle Handle, err error) {
2106	r0, _, e1 := syscall.Syscall(procLoadLibraryExW.Addr(), 3, uintptr(unsafe.Pointer(libname)), uintptr(zero), uintptr(flags))
2107	handle = Handle(r0)
2108	if handle == 0 {
2109		err = errnoErr(e1)
2110	}
2111	return
2112}
2113
2114func LoadLibrary(libname string) (handle Handle, err error) {
2115	var _p0 *uint16
2116	_p0, err = syscall.UTF16PtrFromString(libname)
2117	if err != nil {
2118		return
2119	}
2120	return _LoadLibrary(_p0)
2121}
2122
2123func _LoadLibrary(libname *uint16) (handle Handle, err error) {
2124	r0, _, e1 := syscall.Syscall(procLoadLibraryW.Addr(), 1, uintptr(unsafe.Pointer(libname)), 0, 0)
2125	handle = Handle(r0)
2126	if handle == 0 {
2127		err = errnoErr(e1)
2128	}
2129	return
2130}
2131
2132func LocalFree(hmem Handle) (handle Handle, err error) {
2133	r0, _, e1 := syscall.Syscall(procLocalFree.Addr(), 1, uintptr(hmem), 0, 0)
2134	handle = Handle(r0)
2135	if handle != 0 {
2136		err = errnoErr(e1)
2137	}
2138	return
2139}
2140
2141func LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) {
2142	r1, _, e1 := syscall.Syscall6(procLockFileEx.Addr(), 6, uintptr(file), uintptr(flags), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)))
2143	if r1 == 0 {
2144		err = errnoErr(e1)
2145	}
2146	return
2147}
2148
2149func MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) {
2150	r0, _, e1 := syscall.Syscall6(procMapViewOfFile.Addr(), 5, uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length), 0)
2151	addr = uintptr(r0)
2152	if addr == 0 {
2153		err = errnoErr(e1)
2154	}
2155	return
2156}
2157
2158func MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) {
2159	r1, _, e1 := syscall.Syscall(procMoveFileExW.Addr(), 3, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags))
2160	if r1 == 0 {
2161		err = errnoErr(e1)
2162	}
2163	return
2164}
2165
2166func MoveFile(from *uint16, to *uint16) (err error) {
2167	r1, _, e1 := syscall.Syscall(procMoveFileW.Addr(), 2, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), 0)
2168	if r1 == 0 {
2169		err = errnoErr(e1)
2170	}
2171	return
2172}
2173
2174func MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) {
2175	r0, _, e1 := syscall.Syscall6(procMultiByteToWideChar.Addr(), 6, uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar))
2176	nwrite = int32(r0)
2177	if nwrite == 0 {
2178		err = errnoErr(e1)
2179	}
2180	return
2181}
2182
2183func OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) {
2184	var _p0 uint32
2185	if inheritHandle {
2186		_p0 = 1
2187	}
2188	r0, _, e1 := syscall.Syscall(procOpenEventW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name)))
2189	handle = Handle(r0)
2190	if handle == 0 {
2191		err = errnoErr(e1)
2192	}
2193	return
2194}
2195
2196func OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) {
2197	var _p0 uint32
2198	if inheritHandle {
2199		_p0 = 1
2200	}
2201	r0, _, e1 := syscall.Syscall(procOpenMutexW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name)))
2202	handle = Handle(r0)
2203	if handle == 0 {
2204		err = errnoErr(e1)
2205	}
2206	return
2207}
2208
2209func OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) {
2210	var _p0 uint32
2211	if inheritHandle {
2212		_p0 = 1
2213	}
2214	r0, _, e1 := syscall.Syscall(procOpenProcess.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(processId))
2215	handle = Handle(r0)
2216	if handle == 0 {
2217		err = errnoErr(e1)
2218	}
2219	return
2220}
2221
2222func OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) {
2223	var _p0 uint32
2224	if inheritHandle {
2225		_p0 = 1
2226	}
2227	r0, _, e1 := syscall.Syscall(procOpenThread.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(threadId))
2228	handle = Handle(r0)
2229	if handle == 0 {
2230		err = errnoErr(e1)
2231	}
2232	return
2233}
2234
2235func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uint32, overlapped *Overlapped) (err error) {
2236	r1, _, e1 := syscall.Syscall6(procPostQueuedCompletionStatus.Addr(), 4, uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped)), 0, 0)
2237	if r1 == 0 {
2238		err = errnoErr(e1)
2239	}
2240	return
2241}
2242
2243func Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) {
2244	r1, _, e1 := syscall.Syscall(procProcess32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0)
2245	if r1 == 0 {
2246		err = errnoErr(e1)
2247	}
2248	return
2249}
2250
2251func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) {
2252	r1, _, e1 := syscall.Syscall(procProcess32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0)
2253	if r1 == 0 {
2254		err = errnoErr(e1)
2255	}
2256	return
2257}
2258
2259func ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) {
2260	r1, _, e1 := syscall.Syscall(procProcessIdToSessionId.Addr(), 2, uintptr(pid), uintptr(unsafe.Pointer(sessionid)), 0)
2261	if r1 == 0 {
2262		err = errnoErr(e1)
2263	}
2264	return
2265}
2266
2267func PulseEvent(event Handle) (err error) {
2268	r1, _, e1 := syscall.Syscall(procPulseEvent.Addr(), 1, uintptr(event), 0, 0)
2269	if r1 == 0 {
2270		err = errnoErr(e1)
2271	}
2272	return
2273}
2274
2275func QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) {
2276	r0, _, e1 := syscall.Syscall(procQueryDosDeviceW.Addr(), 3, uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max))
2277	n = uint32(r0)
2278	if n == 0 {
2279		err = errnoErr(e1)
2280	}
2281	return
2282}
2283
2284func QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) {
2285	r1, _, e1 := syscall.Syscall6(procQueryInformationJobObject.Addr(), 5, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), uintptr(unsafe.Pointer(retlen)), 0)
2286	if r1 == 0 {
2287		err = errnoErr(e1)
2288	}
2289	return
2290}
2291
2292func ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) {
2293	r1, _, e1 := syscall.Syscall6(procReadConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl)), 0)
2294	if r1 == 0 {
2295		err = errnoErr(e1)
2296	}
2297	return
2298}
2299
2300func ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) {
2301	var _p0 uint32
2302	if watchSubTree {
2303		_p0 = 1
2304	}
2305	r1, _, e1 := syscall.Syscall9(procReadDirectoryChangesW.Addr(), 8, uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine), 0)
2306	if r1 == 0 {
2307		err = errnoErr(e1)
2308	}
2309	return
2310}
2311
2312func ReadFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) {
2313	var _p0 *byte
2314	if len(buf) > 0 {
2315		_p0 = &buf[0]
2316	}
2317	r1, _, e1 := syscall.Syscall6(procReadFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0)
2318	if r1 == 0 {
2319		err = errnoErr(e1)
2320	}
2321	return
2322}
2323
2324func ReleaseMutex(mutex Handle) (err error) {
2325	r1, _, e1 := syscall.Syscall(procReleaseMutex.Addr(), 1, uintptr(mutex), 0, 0)
2326	if r1 == 0 {
2327		err = errnoErr(e1)
2328	}
2329	return
2330}
2331
2332func RemoveDirectory(path *uint16) (err error) {
2333	r1, _, e1 := syscall.Syscall(procRemoveDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)
2334	if r1 == 0 {
2335		err = errnoErr(e1)
2336	}
2337	return
2338}
2339
2340func ResetEvent(event Handle) (err error) {
2341	r1, _, e1 := syscall.Syscall(procResetEvent.Addr(), 1, uintptr(event), 0, 0)
2342	if r1 == 0 {
2343		err = errnoErr(e1)
2344	}
2345	return
2346}
2347
2348func ResumeThread(thread Handle) (ret uint32, err error) {
2349	r0, _, e1 := syscall.Syscall(procResumeThread.Addr(), 1, uintptr(thread), 0, 0)
2350	ret = uint32(r0)
2351	if ret == 0xffffffff {
2352		err = errnoErr(e1)
2353	}
2354	return
2355}
2356
2357func setConsoleCursorPosition(console Handle, position uint32) (err error) {
2358	r1, _, e1 := syscall.Syscall(procSetConsoleCursorPosition.Addr(), 2, uintptr(console), uintptr(position), 0)
2359	if r1 == 0 {
2360		err = errnoErr(e1)
2361	}
2362	return
2363}
2364
2365func SetConsoleMode(console Handle, mode uint32) (err error) {
2366	r1, _, e1 := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(console), uintptr(mode), 0)
2367	if r1 == 0 {
2368		err = errnoErr(e1)
2369	}
2370	return
2371}
2372
2373func SetCurrentDirectory(path *uint16) (err error) {
2374	r1, _, e1 := syscall.Syscall(procSetCurrentDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)
2375	if r1 == 0 {
2376		err = errnoErr(e1)
2377	}
2378	return
2379}
2380
2381func SetDefaultDllDirectories(directoryFlags uint32) (err error) {
2382	r1, _, e1 := syscall.Syscall(procSetDefaultDllDirectories.Addr(), 1, uintptr(directoryFlags), 0, 0)
2383	if r1 == 0 {
2384		err = errnoErr(e1)
2385	}
2386	return
2387}
2388
2389func SetDllDirectory(path string) (err error) {
2390	var _p0 *uint16
2391	_p0, err = syscall.UTF16PtrFromString(path)
2392	if err != nil {
2393		return
2394	}
2395	return _SetDllDirectory(_p0)
2396}
2397
2398func _SetDllDirectory(path *uint16) (err error) {
2399	r1, _, e1 := syscall.Syscall(procSetDllDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)
2400	if r1 == 0 {
2401		err = errnoErr(e1)
2402	}
2403	return
2404}
2405
2406func SetEndOfFile(handle Handle) (err error) {
2407	r1, _, e1 := syscall.Syscall(procSetEndOfFile.Addr(), 1, uintptr(handle), 0, 0)
2408	if r1 == 0 {
2409		err = errnoErr(e1)
2410	}
2411	return
2412}
2413
2414func SetEnvironmentVariable(name *uint16, value *uint16) (err error) {
2415	r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0)
2416	if r1 == 0 {
2417		err = errnoErr(e1)
2418	}
2419	return
2420}
2421
2422func SetErrorMode(mode uint32) (ret uint32) {
2423	r0, _, _ := syscall.Syscall(procSetErrorMode.Addr(), 1, uintptr(mode), 0, 0)
2424	ret = uint32(r0)
2425	return
2426}
2427
2428func SetEvent(event Handle) (err error) {
2429	r1, _, e1 := syscall.Syscall(procSetEvent.Addr(), 1, uintptr(event), 0, 0)
2430	if r1 == 0 {
2431		err = errnoErr(e1)
2432	}
2433	return
2434}
2435
2436func SetFileAttributes(name *uint16, attrs uint32) (err error) {
2437	r1, _, e1 := syscall.Syscall(procSetFileAttributesW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(attrs), 0)
2438	if r1 == 0 {
2439		err = errnoErr(e1)
2440	}
2441	return
2442}
2443
2444func SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) {
2445	r1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(handle), uintptr(flags), 0)
2446	if r1 == 0 {
2447		err = errnoErr(e1)
2448	}
2449	return
2450}
2451
2452func SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error) {
2453	r1, _, e1 := syscall.Syscall6(procSetFileInformationByHandle.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), 0, 0)
2454	if r1 == 0 {
2455		err = errnoErr(e1)
2456	}
2457	return
2458}
2459
2460func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) {
2461	r0, _, e1 := syscall.Syscall6(procSetFilePointer.Addr(), 4, uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence), 0, 0)
2462	newlowoffset = uint32(r0)
2463	if newlowoffset == 0xffffffff {
2464		err = errnoErr(e1)
2465	}
2466	return
2467}
2468
2469func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) {
2470	r1, _, e1 := syscall.Syscall6(procSetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0)
2471	if r1 == 0 {
2472		err = errnoErr(e1)
2473	}
2474	return
2475}
2476
2477func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) {
2478	r1, _, e1 := syscall.Syscall(procSetHandleInformation.Addr(), 3, uintptr(handle), uintptr(mask), uintptr(flags))
2479	if r1 == 0 {
2480		err = errnoErr(e1)
2481	}
2482	return
2483}
2484
2485func SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) {
2486	r0, _, e1 := syscall.Syscall6(procSetInformationJobObject.Addr(), 4, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), 0, 0)
2487	ret = int(r0)
2488	if ret == 0 {
2489		err = errnoErr(e1)
2490	}
2491	return
2492}
2493
2494func SetPriorityClass(process Handle, priorityClass uint32) (err error) {
2495	r1, _, e1 := syscall.Syscall(procSetPriorityClass.Addr(), 2, uintptr(process), uintptr(priorityClass), 0)
2496	if r1 == 0 {
2497		err = errnoErr(e1)
2498	}
2499	return
2500}
2501
2502func SetProcessPriorityBoost(process Handle, disable bool) (err error) {
2503	var _p0 uint32
2504	if disable {
2505		_p0 = 1
2506	}
2507	r1, _, e1 := syscall.Syscall(procSetProcessPriorityBoost.Addr(), 2, uintptr(process), uintptr(_p0), 0)
2508	if r1 == 0 {
2509		err = errnoErr(e1)
2510	}
2511	return
2512}
2513
2514func SetProcessShutdownParameters(level uint32, flags uint32) (err error) {
2515	r1, _, e1 := syscall.Syscall(procSetProcessShutdownParameters.Addr(), 2, uintptr(level), uintptr(flags), 0)
2516	if r1 == 0 {
2517		err = errnoErr(e1)
2518	}
2519	return
2520}
2521
2522func SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) {
2523	r1, _, e1 := syscall.Syscall6(procSetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(dwMinimumWorkingSetSize), uintptr(dwMaximumWorkingSetSize), uintptr(flags), 0, 0)
2524	if r1 == 0 {
2525		err = errnoErr(e1)
2526	}
2527	return
2528}
2529
2530func SetStdHandle(stdhandle uint32, handle Handle) (err error) {
2531	r1, _, e1 := syscall.Syscall(procSetStdHandle.Addr(), 2, uintptr(stdhandle), uintptr(handle), 0)
2532	if r1 == 0 {
2533		err = errnoErr(e1)
2534	}
2535	return
2536}
2537
2538func SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) {
2539	r1, _, e1 := syscall.Syscall(procSetVolumeLabelW.Addr(), 2, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName)), 0)
2540	if r1 == 0 {
2541		err = errnoErr(e1)
2542	}
2543	return
2544}
2545
2546func SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) {
2547	r1, _, e1 := syscall.Syscall(procSetVolumeMountPointW.Addr(), 2, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), 0)
2548	if r1 == 0 {
2549		err = errnoErr(e1)
2550	}
2551	return
2552}
2553
2554func SleepEx(milliseconds uint32, alertable bool) (ret uint32) {
2555	var _p0 uint32
2556	if alertable {
2557		_p0 = 1
2558	}
2559	r0, _, _ := syscall.Syscall(procSleepEx.Addr(), 2, uintptr(milliseconds), uintptr(_p0), 0)
2560	ret = uint32(r0)
2561	return
2562}
2563
2564func TerminateJobObject(job Handle, exitCode uint32) (err error) {
2565	r1, _, e1 := syscall.Syscall(procTerminateJobObject.Addr(), 2, uintptr(job), uintptr(exitCode), 0)
2566	if r1 == 0 {
2567		err = errnoErr(e1)
2568	}
2569	return
2570}
2571
2572func TerminateProcess(handle Handle, exitcode uint32) (err error) {
2573	r1, _, e1 := syscall.Syscall(procTerminateProcess.Addr(), 2, uintptr(handle), uintptr(exitcode), 0)
2574	if r1 == 0 {
2575		err = errnoErr(e1)
2576	}
2577	return
2578}
2579
2580func Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) {
2581	r1, _, e1 := syscall.Syscall(procThread32First.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0)
2582	if r1 == 0 {
2583		err = errnoErr(e1)
2584	}
2585	return
2586}
2587
2588func Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) {
2589	r1, _, e1 := syscall.Syscall(procThread32Next.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0)
2590	if r1 == 0 {
2591		err = errnoErr(e1)
2592	}
2593	return
2594}
2595
2596func UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) {
2597	r1, _, e1 := syscall.Syscall6(procUnlockFileEx.Addr(), 5, uintptr(file), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)), 0)
2598	if r1 == 0 {
2599		err = errnoErr(e1)
2600	}
2601	return
2602}
2603
2604func UnmapViewOfFile(addr uintptr) (err error) {
2605	r1, _, e1 := syscall.Syscall(procUnmapViewOfFile.Addr(), 1, uintptr(addr), 0, 0)
2606	if r1 == 0 {
2607		err = errnoErr(e1)
2608	}
2609	return
2610}
2611
2612func VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) {
2613	r0, _, e1 := syscall.Syscall6(procVirtualAlloc.Addr(), 4, uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect), 0, 0)
2614	value = uintptr(r0)
2615	if value == 0 {
2616		err = errnoErr(e1)
2617	}
2618	return
2619}
2620
2621func VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) {
2622	r1, _, e1 := syscall.Syscall(procVirtualFree.Addr(), 3, uintptr(address), uintptr(size), uintptr(freetype))
2623	if r1 == 0 {
2624		err = errnoErr(e1)
2625	}
2626	return
2627}
2628
2629func VirtualLock(addr uintptr, length uintptr) (err error) {
2630	r1, _, e1 := syscall.Syscall(procVirtualLock.Addr(), 2, uintptr(addr), uintptr(length), 0)
2631	if r1 == 0 {
2632		err = errnoErr(e1)
2633	}
2634	return
2635}
2636
2637func VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) {
2638	r1, _, e1 := syscall.Syscall6(procVirtualProtect.Addr(), 4, uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect)), 0, 0)
2639	if r1 == 0 {
2640		err = errnoErr(e1)
2641	}
2642	return
2643}
2644
2645func VirtualUnlock(addr uintptr, length uintptr) (err error) {
2646	r1, _, e1 := syscall.Syscall(procVirtualUnlock.Addr(), 2, uintptr(addr), uintptr(length), 0)
2647	if r1 == 0 {
2648		err = errnoErr(e1)
2649	}
2650	return
2651}
2652
2653func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) {
2654	var _p0 uint32
2655	if waitAll {
2656		_p0 = 1
2657	}
2658	r0, _, e1 := syscall.Syscall6(procWaitForMultipleObjects.Addr(), 4, uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds), 0, 0)
2659	event = uint32(r0)
2660	if event == 0xffffffff {
2661		err = errnoErr(e1)
2662	}
2663	return
2664}
2665
2666func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) {
2667	r0, _, e1 := syscall.Syscall(procWaitForSingleObject.Addr(), 2, uintptr(handle), uintptr(waitMilliseconds), 0)
2668	event = uint32(r0)
2669	if event == 0xffffffff {
2670		err = errnoErr(e1)
2671	}
2672	return
2673}
2674
2675func WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) {
2676	r1, _, e1 := syscall.Syscall6(procWriteConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)), 0)
2677	if r1 == 0 {
2678		err = errnoErr(e1)
2679	}
2680	return
2681}
2682
2683func WriteFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) {
2684	var _p0 *byte
2685	if len(buf) > 0 {
2686		_p0 = &buf[0]
2687	}
2688	r1, _, e1 := syscall.Syscall6(procWriteFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0)
2689	if r1 == 0 {
2690		err = errnoErr(e1)
2691	}
2692	return
2693}
2694
2695func AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) {
2696	r1, _, e1 := syscall.Syscall9(procAcceptEx.Addr(), 8, uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped)), 0)
2697	if r1 == 0 {
2698		err = errnoErr(e1)
2699	}
2700	return
2701}
2702
2703func GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) {
2704	syscall.Syscall9(procGetAcceptExSockaddrs.Addr(), 8, 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)), 0)
2705	return
2706}
2707
2708func TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) {
2709	r1, _, e1 := syscall.Syscall9(procTransmitFile.Addr(), 7, uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags), 0, 0)
2710	if r1 == 0 {
2711		err = errnoErr(e1)
2712	}
2713	return
2714}
2715
2716func NetApiBufferFree(buf *byte) (neterr error) {
2717	r0, _, _ := syscall.Syscall(procNetApiBufferFree.Addr(), 1, uintptr(unsafe.Pointer(buf)), 0, 0)
2718	if r0 != 0 {
2719		neterr = syscall.Errno(r0)
2720	}
2721	return
2722}
2723
2724func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) {
2725	r0, _, _ := syscall.Syscall(procNetGetJoinInformation.Addr(), 3, uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType)))
2726	if r0 != 0 {
2727		neterr = syscall.Errno(r0)
2728	}
2729	return
2730}
2731
2732func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) {
2733	r0, _, _ := syscall.Syscall6(procNetUserGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)), 0, 0)
2734	if r0 != 0 {
2735		neterr = syscall.Errno(r0)
2736	}
2737	return
2738}
2739
2740func rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) {
2741	syscall.Syscall(procRtlGetNtVersionNumbers.Addr(), 3, uintptr(unsafe.Pointer(majorVersion)), uintptr(unsafe.Pointer(minorVersion)), uintptr(unsafe.Pointer(buildNumber)))
2742	return
2743}
2744
2745func rtlGetVersion(info *OsVersionInfoEx) (ret error) {
2746	r0, _, _ := syscall.Syscall(procRtlGetVersion.Addr(), 1, uintptr(unsafe.Pointer(info)), 0, 0)
2747	if r0 != 0 {
2748		ret = syscall.Errno(r0)
2749	}
2750	return
2751}
2752
2753func clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) {
2754	r0, _, _ := syscall.Syscall(procCLSIDFromString.Addr(), 2, uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid)), 0)
2755	if r0 != 0 {
2756		ret = syscall.Errno(r0)
2757	}
2758	return
2759}
2760
2761func coCreateGuid(pguid *GUID) (ret error) {
2762	r0, _, _ := syscall.Syscall(procCoCreateGuid.Addr(), 1, uintptr(unsafe.Pointer(pguid)), 0, 0)
2763	if r0 != 0 {
2764		ret = syscall.Errno(r0)
2765	}
2766	return
2767}
2768
2769func CoTaskMemFree(address unsafe.Pointer) {
2770	syscall.Syscall(procCoTaskMemFree.Addr(), 1, uintptr(address), 0, 0)
2771	return
2772}
2773
2774func stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) {
2775	r0, _, _ := syscall.Syscall(procStringFromGUID2.Addr(), 3, uintptr(unsafe.Pointer(rguid)), uintptr(unsafe.Pointer(lpsz)), uintptr(cchMax))
2776	chars = int32(r0)
2777	return
2778}
2779
2780func EnumProcesses(processIds []uint32, bytesReturned *uint32) (err error) {
2781	var _p0 *uint32
2782	if len(processIds) > 0 {
2783		_p0 = &processIds[0]
2784	}
2785	r1, _, e1 := syscall.Syscall(procEnumProcesses.Addr(), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(processIds)), uintptr(unsafe.Pointer(bytesReturned)))
2786	if r1 == 0 {
2787		err = errnoErr(e1)
2788	}
2789	return
2790}
2791
2792func GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) {
2793	r1, _, e1 := syscall.Syscall(procGetUserNameExW.Addr(), 3, uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize)))
2794	if r1&0xff == 0 {
2795		err = errnoErr(e1)
2796	}
2797	return
2798}
2799
2800func TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) {
2801	r1, _, e1 := syscall.Syscall6(procTranslateNameW.Addr(), 5, uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize)), 0)
2802	if r1&0xff == 0 {
2803		err = errnoErr(e1)
2804	}
2805	return
2806}
2807
2808func CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) {
2809	r0, _, e1 := syscall.Syscall(procCommandLineToArgvW.Addr(), 2, uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)), 0)
2810	argv = (*[8192]*[8192]uint16)(unsafe.Pointer(r0))
2811	if argv == nil {
2812		err = errnoErr(e1)
2813	}
2814	return
2815}
2816
2817func shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) {
2818	r0, _, _ := syscall.Syscall6(procSHGetKnownFolderPath.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path)), 0, 0)
2819	if r0 != 0 {
2820		ret = syscall.Errno(r0)
2821	}
2822	return
2823}
2824
2825func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) {
2826	r1, _, e1 := syscall.Syscall6(procShellExecuteW.Addr(), 6, uintptr(hwnd), uintptr(unsafe.Pointer(verb)), uintptr(unsafe.Pointer(file)), uintptr(unsafe.Pointer(args)), uintptr(unsafe.Pointer(cwd)), uintptr(showCmd))
2827	if r1 <= 32 {
2828		err = errnoErr(e1)
2829	}
2830	return
2831}
2832
2833func ExitWindowsEx(flags uint32, reason uint32) (err error) {
2834	r1, _, e1 := syscall.Syscall(procExitWindowsEx.Addr(), 2, uintptr(flags), uintptr(reason), 0)
2835	if r1 == 0 {
2836		err = errnoErr(e1)
2837	}
2838	return
2839}
2840
2841func MessageBox(hwnd Handle, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) {
2842	r0, _, e1 := syscall.Syscall6(procMessageBoxW.Addr(), 4, uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype), 0, 0)
2843	ret = int32(r0)
2844	if ret == 0 {
2845		err = errnoErr(e1)
2846	}
2847	return
2848}
2849
2850func CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) {
2851	var _p0 uint32
2852	if inheritExisting {
2853		_p0 = 1
2854	}
2855	r1, _, e1 := syscall.Syscall(procCreateEnvironmentBlock.Addr(), 3, uintptr(unsafe.Pointer(block)), uintptr(token), uintptr(_p0))
2856	if r1 == 0 {
2857		err = errnoErr(e1)
2858	}
2859	return
2860}
2861
2862func DestroyEnvironmentBlock(block *uint16) (err error) {
2863	r1, _, e1 := syscall.Syscall(procDestroyEnvironmentBlock.Addr(), 1, uintptr(unsafe.Pointer(block)), 0, 0)
2864	if r1 == 0 {
2865		err = errnoErr(e1)
2866	}
2867	return
2868}
2869
2870func GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) {
2871	r1, _, e1 := syscall.Syscall(procGetUserProfileDirectoryW.Addr(), 3, uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen)))
2872	if r1 == 0 {
2873		err = errnoErr(e1)
2874	}
2875	return
2876}
2877
2878func FreeAddrInfoW(addrinfo *AddrinfoW) {
2879	syscall.Syscall(procFreeAddrInfoW.Addr(), 1, uintptr(unsafe.Pointer(addrinfo)), 0, 0)
2880	return
2881}
2882
2883func GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) {
2884	r0, _, _ := syscall.Syscall6(procGetAddrInfoW.Addr(), 4, uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result)), 0, 0)
2885	if r0 != 0 {
2886		sockerr = syscall.Errno(r0)
2887	}
2888	return
2889}
2890
2891func WSACleanup() (err error) {
2892	r1, _, e1 := syscall.Syscall(procWSACleanup.Addr(), 0, 0, 0, 0)
2893	if r1 == socket_error {
2894		err = errnoErr(e1)
2895	}
2896	return
2897}
2898
2899func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) {
2900	r0, _, e1 := syscall.Syscall(procWSAEnumProtocolsW.Addr(), 3, uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength)))
2901	n = int32(r0)
2902	if n == -1 {
2903		err = errnoErr(e1)
2904	}
2905	return
2906}
2907
2908func WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) {
2909	r1, _, e1 := syscall.Syscall9(procWSAIoctl.Addr(), 9, 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))
2910	if r1 == socket_error {
2911		err = errnoErr(e1)
2912	}
2913	return
2914}
2915
2916func WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) {
2917	r1, _, e1 := syscall.Syscall9(procWSARecv.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0)
2918	if r1 == socket_error {
2919		err = errnoErr(e1)
2920	}
2921	return
2922}
2923
2924func WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) {
2925	r1, _, e1 := syscall.Syscall9(procWSARecvFrom.Addr(), 9, 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)))
2926	if r1 == socket_error {
2927		err = errnoErr(e1)
2928	}
2929	return
2930}
2931
2932func WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) {
2933	r1, _, e1 := syscall.Syscall9(procWSASend.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0)
2934	if r1 == socket_error {
2935		err = errnoErr(e1)
2936	}
2937	return
2938}
2939
2940func WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) {
2941	r1, _, e1 := syscall.Syscall9(procWSASendTo.Addr(), 9, 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)))
2942	if r1 == socket_error {
2943		err = errnoErr(e1)
2944	}
2945	return
2946}
2947
2948func WSAStartup(verreq uint32, data *WSAData) (sockerr error) {
2949	r0, _, _ := syscall.Syscall(procWSAStartup.Addr(), 2, uintptr(verreq), uintptr(unsafe.Pointer(data)), 0)
2950	if r0 != 0 {
2951		sockerr = syscall.Errno(r0)
2952	}
2953	return
2954}
2955
2956func bind(s Handle, name unsafe.Pointer, namelen int32) (err error) {
2957	r1, _, e1 := syscall.Syscall(procbind.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen))
2958	if r1 == socket_error {
2959		err = errnoErr(e1)
2960	}
2961	return
2962}
2963
2964func Closesocket(s Handle) (err error) {
2965	r1, _, e1 := syscall.Syscall(procclosesocket.Addr(), 1, uintptr(s), 0, 0)
2966	if r1 == socket_error {
2967		err = errnoErr(e1)
2968	}
2969	return
2970}
2971
2972func connect(s Handle, name unsafe.Pointer, namelen int32) (err error) {
2973	r1, _, e1 := syscall.Syscall(procconnect.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen))
2974	if r1 == socket_error {
2975		err = errnoErr(e1)
2976	}
2977	return
2978}
2979
2980func GetHostByName(name string) (h *Hostent, err error) {
2981	var _p0 *byte
2982	_p0, err = syscall.BytePtrFromString(name)
2983	if err != nil {
2984		return
2985	}
2986	return _GetHostByName(_p0)
2987}
2988
2989func _GetHostByName(name *byte) (h *Hostent, err error) {
2990	r0, _, e1 := syscall.Syscall(procgethostbyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0)
2991	h = (*Hostent)(unsafe.Pointer(r0))
2992	if h == nil {
2993		err = errnoErr(e1)
2994	}
2995	return
2996}
2997
2998func getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) {
2999	r1, _, e1 := syscall.Syscall(procgetpeername.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
3000	if r1 == socket_error {
3001		err = errnoErr(e1)
3002	}
3003	return
3004}
3005
3006func GetProtoByName(name string) (p *Protoent, err error) {
3007	var _p0 *byte
3008	_p0, err = syscall.BytePtrFromString(name)
3009	if err != nil {
3010		return
3011	}
3012	return _GetProtoByName(_p0)
3013}
3014
3015func _GetProtoByName(name *byte) (p *Protoent, err error) {
3016	r0, _, e1 := syscall.Syscall(procgetprotobyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0)
3017	p = (*Protoent)(unsafe.Pointer(r0))
3018	if p == nil {
3019		err = errnoErr(e1)
3020	}
3021	return
3022}
3023
3024func GetServByName(name string, proto string) (s *Servent, err error) {
3025	var _p0 *byte
3026	_p0, err = syscall.BytePtrFromString(name)
3027	if err != nil {
3028		return
3029	}
3030	var _p1 *byte
3031	_p1, err = syscall.BytePtrFromString(proto)
3032	if err != nil {
3033		return
3034	}
3035	return _GetServByName(_p0, _p1)
3036}
3037
3038func _GetServByName(name *byte, proto *byte) (s *Servent, err error) {
3039	r0, _, e1 := syscall.Syscall(procgetservbyname.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto)), 0)
3040	s = (*Servent)(unsafe.Pointer(r0))
3041	if s == nil {
3042		err = errnoErr(e1)
3043	}
3044	return
3045}
3046
3047func getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) {
3048	r1, _, e1 := syscall.Syscall(procgetsockname.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
3049	if r1 == socket_error {
3050		err = errnoErr(e1)
3051	}
3052	return
3053}
3054
3055func Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) {
3056	r1, _, e1 := syscall.Syscall6(procgetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen)), 0)
3057	if r1 == socket_error {
3058		err = errnoErr(e1)
3059	}
3060	return
3061}
3062
3063func listen(s Handle, backlog int32) (err error) {
3064	r1, _, e1 := syscall.Syscall(proclisten.Addr(), 2, uintptr(s), uintptr(backlog), 0)
3065	if r1 == socket_error {
3066		err = errnoErr(e1)
3067	}
3068	return
3069}
3070
3071func Ntohs(netshort uint16) (u uint16) {
3072	r0, _, _ := syscall.Syscall(procntohs.Addr(), 1, uintptr(netshort), 0, 0)
3073	u = uint16(r0)
3074	return
3075}
3076
3077func recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) {
3078	var _p0 *byte
3079	if len(buf) > 0 {
3080		_p0 = &buf[0]
3081	}
3082	r0, _, e1 := syscall.Syscall6(procrecvfrom.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
3083	n = int32(r0)
3084	if n == -1 {
3085		err = errnoErr(e1)
3086	}
3087	return
3088}
3089
3090func sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) {
3091	var _p0 *byte
3092	if len(buf) > 0 {
3093		_p0 = &buf[0]
3094	}
3095	r1, _, e1 := syscall.Syscall6(procsendto.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(tolen))
3096	if r1 == socket_error {
3097		err = errnoErr(e1)
3098	}
3099	return
3100}
3101
3102func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) {
3103	r1, _, e1 := syscall.Syscall6(procsetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen), 0)
3104	if r1 == socket_error {
3105		err = errnoErr(e1)
3106	}
3107	return
3108}
3109
3110func shutdown(s Handle, how int32) (err error) {
3111	r1, _, e1 := syscall.Syscall(procshutdown.Addr(), 2, uintptr(s), uintptr(how), 0)
3112	if r1 == socket_error {
3113		err = errnoErr(e1)
3114	}
3115	return
3116}
3117
3118func socket(af int32, typ int32, protocol int32) (handle Handle, err error) {
3119	r0, _, e1 := syscall.Syscall(procsocket.Addr(), 3, uintptr(af), uintptr(typ), uintptr(protocol))
3120	handle = Handle(r0)
3121	if handle == InvalidHandle {
3122		err = errnoErr(e1)
3123	}
3124	return
3125}
3126
3127func WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) {
3128	r1, _, e1 := syscall.Syscall6(procWTSEnumerateSessionsW.Addr(), 5, uintptr(handle), uintptr(reserved), uintptr(version), uintptr(unsafe.Pointer(sessions)), uintptr(unsafe.Pointer(count)), 0)
3129	if r1 == 0 {
3130		err = errnoErr(e1)
3131	}
3132	return
3133}
3134
3135func WTSFreeMemory(ptr uintptr) {
3136	syscall.Syscall(procWTSFreeMemory.Addr(), 1, uintptr(ptr), 0, 0)
3137	return
3138}
3139
3140func WTSQueryUserToken(session uint32, token *Token) (err error) {
3141	r1, _, e1 := syscall.Syscall(procWTSQueryUserToken.Addr(), 2, uintptr(session), uintptr(unsafe.Pointer(token)), 0)
3142	if r1 == 0 {
3143		err = errnoErr(e1)
3144	}
3145	return
3146}
3147