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