go-tg-screenshot-bot

Форк
0
4577 строк · 197.5 Кб
1
// Code generated by 'go generate'; DO NOT EDIT.
2

3
package windows
4

5
import (
6
	"syscall"
7
	"unsafe"
8
)
9

10
var _ unsafe.Pointer
11

12
// Do the interface allocations only once for common
13
// Errno values.
14
const (
15
	errnoERROR_IO_PENDING = 997
16
)
17

18
var (
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.
25
func 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

38
var (
39
	modCfgMgr32 = NewLazySystemDLL("CfgMgr32.dll")
40
	modadvapi32 = NewLazySystemDLL("advapi32.dll")
41
	modcrypt32  = NewLazySystemDLL("crypt32.dll")
42
	moddnsapi   = NewLazySystemDLL("dnsapi.dll")
43
	moddwmapi   = NewLazySystemDLL("dwmapi.dll")
44
	modiphlpapi = NewLazySystemDLL("iphlpapi.dll")
45
	modkernel32 = NewLazySystemDLL("kernel32.dll")
46
	modmswsock  = NewLazySystemDLL("mswsock.dll")
47
	modnetapi32 = NewLazySystemDLL("netapi32.dll")
48
	modntdll    = NewLazySystemDLL("ntdll.dll")
49
	modole32    = NewLazySystemDLL("ole32.dll")
50
	modpsapi    = NewLazySystemDLL("psapi.dll")
51
	modsechost  = NewLazySystemDLL("sechost.dll")
52
	modsecur32  = NewLazySystemDLL("secur32.dll")
53
	modsetupapi = NewLazySystemDLL("setupapi.dll")
54
	modshell32  = NewLazySystemDLL("shell32.dll")
55
	moduser32   = NewLazySystemDLL("user32.dll")
56
	moduserenv  = NewLazySystemDLL("userenv.dll")
57
	modversion  = NewLazySystemDLL("version.dll")
58
	modwinmm    = NewLazySystemDLL("winmm.dll")
59
	modwintrust = NewLazySystemDLL("wintrust.dll")
60
	modws2_32   = NewLazySystemDLL("ws2_32.dll")
61
	modwtsapi32 = NewLazySystemDLL("wtsapi32.dll")
62

63
	procCM_Get_DevNode_Status                                = modCfgMgr32.NewProc("CM_Get_DevNode_Status")
64
	procCM_Get_Device_Interface_ListW                        = modCfgMgr32.NewProc("CM_Get_Device_Interface_ListW")
65
	procCM_Get_Device_Interface_List_SizeW                   = modCfgMgr32.NewProc("CM_Get_Device_Interface_List_SizeW")
66
	procCM_MapCrToWin32Err                                   = modCfgMgr32.NewProc("CM_MapCrToWin32Err")
67
	procAdjustTokenGroups                                    = modadvapi32.NewProc("AdjustTokenGroups")
68
	procAdjustTokenPrivileges                                = modadvapi32.NewProc("AdjustTokenPrivileges")
69
	procAllocateAndInitializeSid                             = modadvapi32.NewProc("AllocateAndInitializeSid")
70
	procBuildSecurityDescriptorW                             = modadvapi32.NewProc("BuildSecurityDescriptorW")
71
	procChangeServiceConfig2W                                = modadvapi32.NewProc("ChangeServiceConfig2W")
72
	procChangeServiceConfigW                                 = modadvapi32.NewProc("ChangeServiceConfigW")
73
	procCheckTokenMembership                                 = modadvapi32.NewProc("CheckTokenMembership")
74
	procCloseServiceHandle                                   = modadvapi32.NewProc("CloseServiceHandle")
75
	procControlService                                       = modadvapi32.NewProc("ControlService")
76
	procConvertSecurityDescriptorToStringSecurityDescriptorW = modadvapi32.NewProc("ConvertSecurityDescriptorToStringSecurityDescriptorW")
77
	procConvertSidToStringSidW                               = modadvapi32.NewProc("ConvertSidToStringSidW")
78
	procConvertStringSecurityDescriptorToSecurityDescriptorW = modadvapi32.NewProc("ConvertStringSecurityDescriptorToSecurityDescriptorW")
79
	procConvertStringSidToSidW                               = modadvapi32.NewProc("ConvertStringSidToSidW")
80
	procCopySid                                              = modadvapi32.NewProc("CopySid")
81
	procCreateProcessAsUserW                                 = modadvapi32.NewProc("CreateProcessAsUserW")
82
	procCreateServiceW                                       = modadvapi32.NewProc("CreateServiceW")
83
	procCreateWellKnownSid                                   = modadvapi32.NewProc("CreateWellKnownSid")
84
	procCryptAcquireContextW                                 = modadvapi32.NewProc("CryptAcquireContextW")
85
	procCryptGenRandom                                       = modadvapi32.NewProc("CryptGenRandom")
86
	procCryptReleaseContext                                  = modadvapi32.NewProc("CryptReleaseContext")
87
	procDeleteService                                        = modadvapi32.NewProc("DeleteService")
88
	procDeregisterEventSource                                = modadvapi32.NewProc("DeregisterEventSource")
89
	procDuplicateTokenEx                                     = modadvapi32.NewProc("DuplicateTokenEx")
90
	procEnumDependentServicesW                               = modadvapi32.NewProc("EnumDependentServicesW")
91
	procEnumServicesStatusExW                                = modadvapi32.NewProc("EnumServicesStatusExW")
92
	procEqualSid                                             = modadvapi32.NewProc("EqualSid")
93
	procFreeSid                                              = modadvapi32.NewProc("FreeSid")
94
	procGetAce                                               = modadvapi32.NewProc("GetAce")
95
	procGetLengthSid                                         = modadvapi32.NewProc("GetLengthSid")
96
	procGetNamedSecurityInfoW                                = modadvapi32.NewProc("GetNamedSecurityInfoW")
97
	procGetSecurityDescriptorControl                         = modadvapi32.NewProc("GetSecurityDescriptorControl")
98
	procGetSecurityDescriptorDacl                            = modadvapi32.NewProc("GetSecurityDescriptorDacl")
99
	procGetSecurityDescriptorGroup                           = modadvapi32.NewProc("GetSecurityDescriptorGroup")
100
	procGetSecurityDescriptorLength                          = modadvapi32.NewProc("GetSecurityDescriptorLength")
101
	procGetSecurityDescriptorOwner                           = modadvapi32.NewProc("GetSecurityDescriptorOwner")
102
	procGetSecurityDescriptorRMControl                       = modadvapi32.NewProc("GetSecurityDescriptorRMControl")
103
	procGetSecurityDescriptorSacl                            = modadvapi32.NewProc("GetSecurityDescriptorSacl")
104
	procGetSecurityInfo                                      = modadvapi32.NewProc("GetSecurityInfo")
105
	procGetSidIdentifierAuthority                            = modadvapi32.NewProc("GetSidIdentifierAuthority")
106
	procGetSidSubAuthority                                   = modadvapi32.NewProc("GetSidSubAuthority")
107
	procGetSidSubAuthorityCount                              = modadvapi32.NewProc("GetSidSubAuthorityCount")
108
	procGetTokenInformation                                  = modadvapi32.NewProc("GetTokenInformation")
109
	procImpersonateSelf                                      = modadvapi32.NewProc("ImpersonateSelf")
110
	procInitializeSecurityDescriptor                         = modadvapi32.NewProc("InitializeSecurityDescriptor")
111
	procInitiateSystemShutdownExW                            = modadvapi32.NewProc("InitiateSystemShutdownExW")
112
	procIsTokenRestricted                                    = modadvapi32.NewProc("IsTokenRestricted")
113
	procIsValidSecurityDescriptor                            = modadvapi32.NewProc("IsValidSecurityDescriptor")
114
	procIsValidSid                                           = modadvapi32.NewProc("IsValidSid")
115
	procIsWellKnownSid                                       = modadvapi32.NewProc("IsWellKnownSid")
116
	procLookupAccountNameW                                   = modadvapi32.NewProc("LookupAccountNameW")
117
	procLookupAccountSidW                                    = modadvapi32.NewProc("LookupAccountSidW")
118
	procLookupPrivilegeValueW                                = modadvapi32.NewProc("LookupPrivilegeValueW")
119
	procMakeAbsoluteSD                                       = modadvapi32.NewProc("MakeAbsoluteSD")
120
	procMakeSelfRelativeSD                                   = modadvapi32.NewProc("MakeSelfRelativeSD")
121
	procNotifyServiceStatusChangeW                           = modadvapi32.NewProc("NotifyServiceStatusChangeW")
122
	procOpenProcessToken                                     = modadvapi32.NewProc("OpenProcessToken")
123
	procOpenSCManagerW                                       = modadvapi32.NewProc("OpenSCManagerW")
124
	procOpenServiceW                                         = modadvapi32.NewProc("OpenServiceW")
125
	procOpenThreadToken                                      = modadvapi32.NewProc("OpenThreadToken")
126
	procQueryServiceConfig2W                                 = modadvapi32.NewProc("QueryServiceConfig2W")
127
	procQueryServiceConfigW                                  = modadvapi32.NewProc("QueryServiceConfigW")
128
	procQueryServiceDynamicInformation                       = modadvapi32.NewProc("QueryServiceDynamicInformation")
129
	procQueryServiceLockStatusW                              = modadvapi32.NewProc("QueryServiceLockStatusW")
130
	procQueryServiceStatus                                   = modadvapi32.NewProc("QueryServiceStatus")
131
	procQueryServiceStatusEx                                 = modadvapi32.NewProc("QueryServiceStatusEx")
132
	procRegCloseKey                                          = modadvapi32.NewProc("RegCloseKey")
133
	procRegEnumKeyExW                                        = modadvapi32.NewProc("RegEnumKeyExW")
134
	procRegNotifyChangeKeyValue                              = modadvapi32.NewProc("RegNotifyChangeKeyValue")
135
	procRegOpenKeyExW                                        = modadvapi32.NewProc("RegOpenKeyExW")
136
	procRegQueryInfoKeyW                                     = modadvapi32.NewProc("RegQueryInfoKeyW")
137
	procRegQueryValueExW                                     = modadvapi32.NewProc("RegQueryValueExW")
138
	procRegisterEventSourceW                                 = modadvapi32.NewProc("RegisterEventSourceW")
139
	procRegisterServiceCtrlHandlerExW                        = modadvapi32.NewProc("RegisterServiceCtrlHandlerExW")
140
	procReportEventW                                         = modadvapi32.NewProc("ReportEventW")
141
	procRevertToSelf                                         = modadvapi32.NewProc("RevertToSelf")
142
	procSetEntriesInAclW                                     = modadvapi32.NewProc("SetEntriesInAclW")
143
	procSetKernelObjectSecurity                              = modadvapi32.NewProc("SetKernelObjectSecurity")
144
	procSetNamedSecurityInfoW                                = modadvapi32.NewProc("SetNamedSecurityInfoW")
145
	procSetSecurityDescriptorControl                         = modadvapi32.NewProc("SetSecurityDescriptorControl")
146
	procSetSecurityDescriptorDacl                            = modadvapi32.NewProc("SetSecurityDescriptorDacl")
147
	procSetSecurityDescriptorGroup                           = modadvapi32.NewProc("SetSecurityDescriptorGroup")
148
	procSetSecurityDescriptorOwner                           = modadvapi32.NewProc("SetSecurityDescriptorOwner")
149
	procSetSecurityDescriptorRMControl                       = modadvapi32.NewProc("SetSecurityDescriptorRMControl")
150
	procSetSecurityDescriptorSacl                            = modadvapi32.NewProc("SetSecurityDescriptorSacl")
151
	procSetSecurityInfo                                      = modadvapi32.NewProc("SetSecurityInfo")
152
	procSetServiceStatus                                     = modadvapi32.NewProc("SetServiceStatus")
153
	procSetThreadToken                                       = modadvapi32.NewProc("SetThreadToken")
154
	procSetTokenInformation                                  = modadvapi32.NewProc("SetTokenInformation")
155
	procStartServiceCtrlDispatcherW                          = modadvapi32.NewProc("StartServiceCtrlDispatcherW")
156
	procStartServiceW                                        = modadvapi32.NewProc("StartServiceW")
157
	procCertAddCertificateContextToStore                     = modcrypt32.NewProc("CertAddCertificateContextToStore")
158
	procCertCloseStore                                       = modcrypt32.NewProc("CertCloseStore")
159
	procCertCreateCertificateContext                         = modcrypt32.NewProc("CertCreateCertificateContext")
160
	procCertDeleteCertificateFromStore                       = modcrypt32.NewProc("CertDeleteCertificateFromStore")
161
	procCertDuplicateCertificateContext                      = modcrypt32.NewProc("CertDuplicateCertificateContext")
162
	procCertEnumCertificatesInStore                          = modcrypt32.NewProc("CertEnumCertificatesInStore")
163
	procCertFindCertificateInStore                           = modcrypt32.NewProc("CertFindCertificateInStore")
164
	procCertFindChainInStore                                 = modcrypt32.NewProc("CertFindChainInStore")
165
	procCertFindExtension                                    = modcrypt32.NewProc("CertFindExtension")
166
	procCertFreeCertificateChain                             = modcrypt32.NewProc("CertFreeCertificateChain")
167
	procCertFreeCertificateContext                           = modcrypt32.NewProc("CertFreeCertificateContext")
168
	procCertGetCertificateChain                              = modcrypt32.NewProc("CertGetCertificateChain")
169
	procCertGetNameStringW                                   = modcrypt32.NewProc("CertGetNameStringW")
170
	procCertOpenStore                                        = modcrypt32.NewProc("CertOpenStore")
171
	procCertOpenSystemStoreW                                 = modcrypt32.NewProc("CertOpenSystemStoreW")
172
	procCertVerifyCertificateChainPolicy                     = modcrypt32.NewProc("CertVerifyCertificateChainPolicy")
173
	procCryptAcquireCertificatePrivateKey                    = modcrypt32.NewProc("CryptAcquireCertificatePrivateKey")
174
	procCryptDecodeObject                                    = modcrypt32.NewProc("CryptDecodeObject")
175
	procCryptProtectData                                     = modcrypt32.NewProc("CryptProtectData")
176
	procCryptQueryObject                                     = modcrypt32.NewProc("CryptQueryObject")
177
	procCryptUnprotectData                                   = modcrypt32.NewProc("CryptUnprotectData")
178
	procPFXImportCertStore                                   = modcrypt32.NewProc("PFXImportCertStore")
179
	procDnsNameCompare_W                                     = moddnsapi.NewProc("DnsNameCompare_W")
180
	procDnsQuery_W                                           = moddnsapi.NewProc("DnsQuery_W")
181
	procDnsRecordListFree                                    = moddnsapi.NewProc("DnsRecordListFree")
182
	procDwmGetWindowAttribute                                = moddwmapi.NewProc("DwmGetWindowAttribute")
183
	procDwmSetWindowAttribute                                = moddwmapi.NewProc("DwmSetWindowAttribute")
184
	procGetAdaptersAddresses                                 = modiphlpapi.NewProc("GetAdaptersAddresses")
185
	procGetAdaptersInfo                                      = modiphlpapi.NewProc("GetAdaptersInfo")
186
	procGetBestInterfaceEx                                   = modiphlpapi.NewProc("GetBestInterfaceEx")
187
	procGetIfEntry                                           = modiphlpapi.NewProc("GetIfEntry")
188
	procAddDllDirectory                                      = modkernel32.NewProc("AddDllDirectory")
189
	procAssignProcessToJobObject                             = modkernel32.NewProc("AssignProcessToJobObject")
190
	procCancelIo                                             = modkernel32.NewProc("CancelIo")
191
	procCancelIoEx                                           = modkernel32.NewProc("CancelIoEx")
192
	procClearCommBreak                                       = modkernel32.NewProc("ClearCommBreak")
193
	procClearCommError                                       = modkernel32.NewProc("ClearCommError")
194
	procCloseHandle                                          = modkernel32.NewProc("CloseHandle")
195
	procClosePseudoConsole                                   = modkernel32.NewProc("ClosePseudoConsole")
196
	procConnectNamedPipe                                     = modkernel32.NewProc("ConnectNamedPipe")
197
	procCreateDirectoryW                                     = modkernel32.NewProc("CreateDirectoryW")
198
	procCreateEventExW                                       = modkernel32.NewProc("CreateEventExW")
199
	procCreateEventW                                         = modkernel32.NewProc("CreateEventW")
200
	procCreateFileMappingW                                   = modkernel32.NewProc("CreateFileMappingW")
201
	procCreateFileW                                          = modkernel32.NewProc("CreateFileW")
202
	procCreateHardLinkW                                      = modkernel32.NewProc("CreateHardLinkW")
203
	procCreateIoCompletionPort                               = modkernel32.NewProc("CreateIoCompletionPort")
204
	procCreateJobObjectW                                     = modkernel32.NewProc("CreateJobObjectW")
205
	procCreateMutexExW                                       = modkernel32.NewProc("CreateMutexExW")
206
	procCreateMutexW                                         = modkernel32.NewProc("CreateMutexW")
207
	procCreateNamedPipeW                                     = modkernel32.NewProc("CreateNamedPipeW")
208
	procCreatePipe                                           = modkernel32.NewProc("CreatePipe")
209
	procCreateProcessW                                       = modkernel32.NewProc("CreateProcessW")
210
	procCreatePseudoConsole                                  = modkernel32.NewProc("CreatePseudoConsole")
211
	procCreateSymbolicLinkW                                  = modkernel32.NewProc("CreateSymbolicLinkW")
212
	procCreateToolhelp32Snapshot                             = modkernel32.NewProc("CreateToolhelp32Snapshot")
213
	procDefineDosDeviceW                                     = modkernel32.NewProc("DefineDosDeviceW")
214
	procDeleteFileW                                          = modkernel32.NewProc("DeleteFileW")
215
	procDeleteProcThreadAttributeList                        = modkernel32.NewProc("DeleteProcThreadAttributeList")
216
	procDeleteVolumeMountPointW                              = modkernel32.NewProc("DeleteVolumeMountPointW")
217
	procDeviceIoControl                                      = modkernel32.NewProc("DeviceIoControl")
218
	procDisconnectNamedPipe                                  = modkernel32.NewProc("DisconnectNamedPipe")
219
	procDuplicateHandle                                      = modkernel32.NewProc("DuplicateHandle")
220
	procEscapeCommFunction                                   = modkernel32.NewProc("EscapeCommFunction")
221
	procExitProcess                                          = modkernel32.NewProc("ExitProcess")
222
	procExpandEnvironmentStringsW                            = modkernel32.NewProc("ExpandEnvironmentStringsW")
223
	procFindClose                                            = modkernel32.NewProc("FindClose")
224
	procFindCloseChangeNotification                          = modkernel32.NewProc("FindCloseChangeNotification")
225
	procFindFirstChangeNotificationW                         = modkernel32.NewProc("FindFirstChangeNotificationW")
226
	procFindFirstFileW                                       = modkernel32.NewProc("FindFirstFileW")
227
	procFindFirstVolumeMountPointW                           = modkernel32.NewProc("FindFirstVolumeMountPointW")
228
	procFindFirstVolumeW                                     = modkernel32.NewProc("FindFirstVolumeW")
229
	procFindNextChangeNotification                           = modkernel32.NewProc("FindNextChangeNotification")
230
	procFindNextFileW                                        = modkernel32.NewProc("FindNextFileW")
231
	procFindNextVolumeMountPointW                            = modkernel32.NewProc("FindNextVolumeMountPointW")
232
	procFindNextVolumeW                                      = modkernel32.NewProc("FindNextVolumeW")
233
	procFindResourceW                                        = modkernel32.NewProc("FindResourceW")
234
	procFindVolumeClose                                      = modkernel32.NewProc("FindVolumeClose")
235
	procFindVolumeMountPointClose                            = modkernel32.NewProc("FindVolumeMountPointClose")
236
	procFlushFileBuffers                                     = modkernel32.NewProc("FlushFileBuffers")
237
	procFlushViewOfFile                                      = modkernel32.NewProc("FlushViewOfFile")
238
	procFormatMessageW                                       = modkernel32.NewProc("FormatMessageW")
239
	procFreeEnvironmentStringsW                              = modkernel32.NewProc("FreeEnvironmentStringsW")
240
	procFreeLibrary                                          = modkernel32.NewProc("FreeLibrary")
241
	procGenerateConsoleCtrlEvent                             = modkernel32.NewProc("GenerateConsoleCtrlEvent")
242
	procGetACP                                               = modkernel32.NewProc("GetACP")
243
	procGetActiveProcessorCount                              = modkernel32.NewProc("GetActiveProcessorCount")
244
	procGetCommModemStatus                                   = modkernel32.NewProc("GetCommModemStatus")
245
	procGetCommState                                         = modkernel32.NewProc("GetCommState")
246
	procGetCommTimeouts                                      = modkernel32.NewProc("GetCommTimeouts")
247
	procGetCommandLineW                                      = modkernel32.NewProc("GetCommandLineW")
248
	procGetComputerNameExW                                   = modkernel32.NewProc("GetComputerNameExW")
249
	procGetComputerNameW                                     = modkernel32.NewProc("GetComputerNameW")
250
	procGetConsoleMode                                       = modkernel32.NewProc("GetConsoleMode")
251
	procGetConsoleScreenBufferInfo                           = modkernel32.NewProc("GetConsoleScreenBufferInfo")
252
	procGetCurrentDirectoryW                                 = modkernel32.NewProc("GetCurrentDirectoryW")
253
	procGetCurrentProcessId                                  = modkernel32.NewProc("GetCurrentProcessId")
254
	procGetCurrentThreadId                                   = modkernel32.NewProc("GetCurrentThreadId")
255
	procGetDiskFreeSpaceExW                                  = modkernel32.NewProc("GetDiskFreeSpaceExW")
256
	procGetDriveTypeW                                        = modkernel32.NewProc("GetDriveTypeW")
257
	procGetEnvironmentStringsW                               = modkernel32.NewProc("GetEnvironmentStringsW")
258
	procGetEnvironmentVariableW                              = modkernel32.NewProc("GetEnvironmentVariableW")
259
	procGetExitCodeProcess                                   = modkernel32.NewProc("GetExitCodeProcess")
260
	procGetFileAttributesExW                                 = modkernel32.NewProc("GetFileAttributesExW")
261
	procGetFileAttributesW                                   = modkernel32.NewProc("GetFileAttributesW")
262
	procGetFileInformationByHandle                           = modkernel32.NewProc("GetFileInformationByHandle")
263
	procGetFileInformationByHandleEx                         = modkernel32.NewProc("GetFileInformationByHandleEx")
264
	procGetFileTime                                          = modkernel32.NewProc("GetFileTime")
265
	procGetFileType                                          = modkernel32.NewProc("GetFileType")
266
	procGetFinalPathNameByHandleW                            = modkernel32.NewProc("GetFinalPathNameByHandleW")
267
	procGetFullPathNameW                                     = modkernel32.NewProc("GetFullPathNameW")
268
	procGetLargePageMinimum                                  = modkernel32.NewProc("GetLargePageMinimum")
269
	procGetLastError                                         = modkernel32.NewProc("GetLastError")
270
	procGetLogicalDriveStringsW                              = modkernel32.NewProc("GetLogicalDriveStringsW")
271
	procGetLogicalDrives                                     = modkernel32.NewProc("GetLogicalDrives")
272
	procGetLongPathNameW                                     = modkernel32.NewProc("GetLongPathNameW")
273
	procGetMaximumProcessorCount                             = modkernel32.NewProc("GetMaximumProcessorCount")
274
	procGetModuleFileNameW                                   = modkernel32.NewProc("GetModuleFileNameW")
275
	procGetModuleHandleExW                                   = modkernel32.NewProc("GetModuleHandleExW")
276
	procGetNamedPipeHandleStateW                             = modkernel32.NewProc("GetNamedPipeHandleStateW")
277
	procGetNamedPipeInfo                                     = modkernel32.NewProc("GetNamedPipeInfo")
278
	procGetOverlappedResult                                  = modkernel32.NewProc("GetOverlappedResult")
279
	procGetPriorityClass                                     = modkernel32.NewProc("GetPriorityClass")
280
	procGetProcAddress                                       = modkernel32.NewProc("GetProcAddress")
281
	procGetProcessId                                         = modkernel32.NewProc("GetProcessId")
282
	procGetProcessPreferredUILanguages                       = modkernel32.NewProc("GetProcessPreferredUILanguages")
283
	procGetProcessShutdownParameters                         = modkernel32.NewProc("GetProcessShutdownParameters")
284
	procGetProcessTimes                                      = modkernel32.NewProc("GetProcessTimes")
285
	procGetProcessWorkingSetSizeEx                           = modkernel32.NewProc("GetProcessWorkingSetSizeEx")
286
	procGetQueuedCompletionStatus                            = modkernel32.NewProc("GetQueuedCompletionStatus")
287
	procGetShortPathNameW                                    = modkernel32.NewProc("GetShortPathNameW")
288
	procGetStartupInfoW                                      = modkernel32.NewProc("GetStartupInfoW")
289
	procGetStdHandle                                         = modkernel32.NewProc("GetStdHandle")
290
	procGetSystemDirectoryW                                  = modkernel32.NewProc("GetSystemDirectoryW")
291
	procGetSystemPreferredUILanguages                        = modkernel32.NewProc("GetSystemPreferredUILanguages")
292
	procGetSystemTimeAsFileTime                              = modkernel32.NewProc("GetSystemTimeAsFileTime")
293
	procGetSystemTimePreciseAsFileTime                       = modkernel32.NewProc("GetSystemTimePreciseAsFileTime")
294
	procGetSystemWindowsDirectoryW                           = modkernel32.NewProc("GetSystemWindowsDirectoryW")
295
	procGetTempPathW                                         = modkernel32.NewProc("GetTempPathW")
296
	procGetThreadPreferredUILanguages                        = modkernel32.NewProc("GetThreadPreferredUILanguages")
297
	procGetTickCount64                                       = modkernel32.NewProc("GetTickCount64")
298
	procGetTimeZoneInformation                               = modkernel32.NewProc("GetTimeZoneInformation")
299
	procGetUserPreferredUILanguages                          = modkernel32.NewProc("GetUserPreferredUILanguages")
300
	procGetVersion                                           = modkernel32.NewProc("GetVersion")
301
	procGetVolumeInformationByHandleW                        = modkernel32.NewProc("GetVolumeInformationByHandleW")
302
	procGetVolumeInformationW                                = modkernel32.NewProc("GetVolumeInformationW")
303
	procGetVolumeNameForVolumeMountPointW                    = modkernel32.NewProc("GetVolumeNameForVolumeMountPointW")
304
	procGetVolumePathNameW                                   = modkernel32.NewProc("GetVolumePathNameW")
305
	procGetVolumePathNamesForVolumeNameW                     = modkernel32.NewProc("GetVolumePathNamesForVolumeNameW")
306
	procGetWindowsDirectoryW                                 = modkernel32.NewProc("GetWindowsDirectoryW")
307
	procInitializeProcThreadAttributeList                    = modkernel32.NewProc("InitializeProcThreadAttributeList")
308
	procIsWow64Process                                       = modkernel32.NewProc("IsWow64Process")
309
	procIsWow64Process2                                      = modkernel32.NewProc("IsWow64Process2")
310
	procLoadLibraryExW                                       = modkernel32.NewProc("LoadLibraryExW")
311
	procLoadLibraryW                                         = modkernel32.NewProc("LoadLibraryW")
312
	procLoadResource                                         = modkernel32.NewProc("LoadResource")
313
	procLocalAlloc                                           = modkernel32.NewProc("LocalAlloc")
314
	procLocalFree                                            = modkernel32.NewProc("LocalFree")
315
	procLockFileEx                                           = modkernel32.NewProc("LockFileEx")
316
	procLockResource                                         = modkernel32.NewProc("LockResource")
317
	procMapViewOfFile                                        = modkernel32.NewProc("MapViewOfFile")
318
	procModule32FirstW                                       = modkernel32.NewProc("Module32FirstW")
319
	procModule32NextW                                        = modkernel32.NewProc("Module32NextW")
320
	procMoveFileExW                                          = modkernel32.NewProc("MoveFileExW")
321
	procMoveFileW                                            = modkernel32.NewProc("MoveFileW")
322
	procMultiByteToWideChar                                  = modkernel32.NewProc("MultiByteToWideChar")
323
	procOpenEventW                                           = modkernel32.NewProc("OpenEventW")
324
	procOpenMutexW                                           = modkernel32.NewProc("OpenMutexW")
325
	procOpenProcess                                          = modkernel32.NewProc("OpenProcess")
326
	procOpenThread                                           = modkernel32.NewProc("OpenThread")
327
	procPostQueuedCompletionStatus                           = modkernel32.NewProc("PostQueuedCompletionStatus")
328
	procProcess32FirstW                                      = modkernel32.NewProc("Process32FirstW")
329
	procProcess32NextW                                       = modkernel32.NewProc("Process32NextW")
330
	procProcessIdToSessionId                                 = modkernel32.NewProc("ProcessIdToSessionId")
331
	procPulseEvent                                           = modkernel32.NewProc("PulseEvent")
332
	procPurgeComm                                            = modkernel32.NewProc("PurgeComm")
333
	procQueryDosDeviceW                                      = modkernel32.NewProc("QueryDosDeviceW")
334
	procQueryFullProcessImageNameW                           = modkernel32.NewProc("QueryFullProcessImageNameW")
335
	procQueryInformationJobObject                            = modkernel32.NewProc("QueryInformationJobObject")
336
	procReadConsoleW                                         = modkernel32.NewProc("ReadConsoleW")
337
	procReadDirectoryChangesW                                = modkernel32.NewProc("ReadDirectoryChangesW")
338
	procReadFile                                             = modkernel32.NewProc("ReadFile")
339
	procReadProcessMemory                                    = modkernel32.NewProc("ReadProcessMemory")
340
	procReleaseMutex                                         = modkernel32.NewProc("ReleaseMutex")
341
	procRemoveDirectoryW                                     = modkernel32.NewProc("RemoveDirectoryW")
342
	procRemoveDllDirectory                                   = modkernel32.NewProc("RemoveDllDirectory")
343
	procResetEvent                                           = modkernel32.NewProc("ResetEvent")
344
	procResizePseudoConsole                                  = modkernel32.NewProc("ResizePseudoConsole")
345
	procResumeThread                                         = modkernel32.NewProc("ResumeThread")
346
	procSetCommBreak                                         = modkernel32.NewProc("SetCommBreak")
347
	procSetCommMask                                          = modkernel32.NewProc("SetCommMask")
348
	procSetCommState                                         = modkernel32.NewProc("SetCommState")
349
	procSetCommTimeouts                                      = modkernel32.NewProc("SetCommTimeouts")
350
	procSetConsoleCursorPosition                             = modkernel32.NewProc("SetConsoleCursorPosition")
351
	procSetConsoleMode                                       = modkernel32.NewProc("SetConsoleMode")
352
	procSetCurrentDirectoryW                                 = modkernel32.NewProc("SetCurrentDirectoryW")
353
	procSetDefaultDllDirectories                             = modkernel32.NewProc("SetDefaultDllDirectories")
354
	procSetDllDirectoryW                                     = modkernel32.NewProc("SetDllDirectoryW")
355
	procSetEndOfFile                                         = modkernel32.NewProc("SetEndOfFile")
356
	procSetEnvironmentVariableW                              = modkernel32.NewProc("SetEnvironmentVariableW")
357
	procSetErrorMode                                         = modkernel32.NewProc("SetErrorMode")
358
	procSetEvent                                             = modkernel32.NewProc("SetEvent")
359
	procSetFileAttributesW                                   = modkernel32.NewProc("SetFileAttributesW")
360
	procSetFileCompletionNotificationModes                   = modkernel32.NewProc("SetFileCompletionNotificationModes")
361
	procSetFileInformationByHandle                           = modkernel32.NewProc("SetFileInformationByHandle")
362
	procSetFilePointer                                       = modkernel32.NewProc("SetFilePointer")
363
	procSetFileTime                                          = modkernel32.NewProc("SetFileTime")
364
	procSetFileValidData                                     = modkernel32.NewProc("SetFileValidData")
365
	procSetHandleInformation                                 = modkernel32.NewProc("SetHandleInformation")
366
	procSetInformationJobObject                              = modkernel32.NewProc("SetInformationJobObject")
367
	procSetNamedPipeHandleState                              = modkernel32.NewProc("SetNamedPipeHandleState")
368
	procSetPriorityClass                                     = modkernel32.NewProc("SetPriorityClass")
369
	procSetProcessPriorityBoost                              = modkernel32.NewProc("SetProcessPriorityBoost")
370
	procSetProcessShutdownParameters                         = modkernel32.NewProc("SetProcessShutdownParameters")
371
	procSetProcessWorkingSetSizeEx                           = modkernel32.NewProc("SetProcessWorkingSetSizeEx")
372
	procSetStdHandle                                         = modkernel32.NewProc("SetStdHandle")
373
	procSetVolumeLabelW                                      = modkernel32.NewProc("SetVolumeLabelW")
374
	procSetVolumeMountPointW                                 = modkernel32.NewProc("SetVolumeMountPointW")
375
	procSetupComm                                            = modkernel32.NewProc("SetupComm")
376
	procSizeofResource                                       = modkernel32.NewProc("SizeofResource")
377
	procSleepEx                                              = modkernel32.NewProc("SleepEx")
378
	procTerminateJobObject                                   = modkernel32.NewProc("TerminateJobObject")
379
	procTerminateProcess                                     = modkernel32.NewProc("TerminateProcess")
380
	procThread32First                                        = modkernel32.NewProc("Thread32First")
381
	procThread32Next                                         = modkernel32.NewProc("Thread32Next")
382
	procUnlockFileEx                                         = modkernel32.NewProc("UnlockFileEx")
383
	procUnmapViewOfFile                                      = modkernel32.NewProc("UnmapViewOfFile")
384
	procUpdateProcThreadAttribute                            = modkernel32.NewProc("UpdateProcThreadAttribute")
385
	procVirtualAlloc                                         = modkernel32.NewProc("VirtualAlloc")
386
	procVirtualFree                                          = modkernel32.NewProc("VirtualFree")
387
	procVirtualLock                                          = modkernel32.NewProc("VirtualLock")
388
	procVirtualProtect                                       = modkernel32.NewProc("VirtualProtect")
389
	procVirtualProtectEx                                     = modkernel32.NewProc("VirtualProtectEx")
390
	procVirtualQuery                                         = modkernel32.NewProc("VirtualQuery")
391
	procVirtualQueryEx                                       = modkernel32.NewProc("VirtualQueryEx")
392
	procVirtualUnlock                                        = modkernel32.NewProc("VirtualUnlock")
393
	procWTSGetActiveConsoleSessionId                         = modkernel32.NewProc("WTSGetActiveConsoleSessionId")
394
	procWaitCommEvent                                        = modkernel32.NewProc("WaitCommEvent")
395
	procWaitForMultipleObjects                               = modkernel32.NewProc("WaitForMultipleObjects")
396
	procWaitForSingleObject                                  = modkernel32.NewProc("WaitForSingleObject")
397
	procWriteConsoleW                                        = modkernel32.NewProc("WriteConsoleW")
398
	procWriteFile                                            = modkernel32.NewProc("WriteFile")
399
	procWriteProcessMemory                                   = modkernel32.NewProc("WriteProcessMemory")
400
	procAcceptEx                                             = modmswsock.NewProc("AcceptEx")
401
	procGetAcceptExSockaddrs                                 = modmswsock.NewProc("GetAcceptExSockaddrs")
402
	procTransmitFile                                         = modmswsock.NewProc("TransmitFile")
403
	procNetApiBufferFree                                     = modnetapi32.NewProc("NetApiBufferFree")
404
	procNetGetJoinInformation                                = modnetapi32.NewProc("NetGetJoinInformation")
405
	procNetUserEnum                                          = modnetapi32.NewProc("NetUserEnum")
406
	procNetUserGetInfo                                       = modnetapi32.NewProc("NetUserGetInfo")
407
	procNtCreateFile                                         = modntdll.NewProc("NtCreateFile")
408
	procNtCreateNamedPipeFile                                = modntdll.NewProc("NtCreateNamedPipeFile")
409
	procNtQueryInformationProcess                            = modntdll.NewProc("NtQueryInformationProcess")
410
	procNtQuerySystemInformation                             = modntdll.NewProc("NtQuerySystemInformation")
411
	procNtSetInformationFile                                 = modntdll.NewProc("NtSetInformationFile")
412
	procNtSetInformationProcess                              = modntdll.NewProc("NtSetInformationProcess")
413
	procNtSetSystemInformation                               = modntdll.NewProc("NtSetSystemInformation")
414
	procRtlAddFunctionTable                                  = modntdll.NewProc("RtlAddFunctionTable")
415
	procRtlDefaultNpAcl                                      = modntdll.NewProc("RtlDefaultNpAcl")
416
	procRtlDeleteFunctionTable                               = modntdll.NewProc("RtlDeleteFunctionTable")
417
	procRtlDosPathNameToNtPathName_U_WithStatus              = modntdll.NewProc("RtlDosPathNameToNtPathName_U_WithStatus")
418
	procRtlDosPathNameToRelativeNtPathName_U_WithStatus      = modntdll.NewProc("RtlDosPathNameToRelativeNtPathName_U_WithStatus")
419
	procRtlGetCurrentPeb                                     = modntdll.NewProc("RtlGetCurrentPeb")
420
	procRtlGetNtVersionNumbers                               = modntdll.NewProc("RtlGetNtVersionNumbers")
421
	procRtlGetVersion                                        = modntdll.NewProc("RtlGetVersion")
422
	procRtlInitString                                        = modntdll.NewProc("RtlInitString")
423
	procRtlInitUnicodeString                                 = modntdll.NewProc("RtlInitUnicodeString")
424
	procRtlNtStatusToDosErrorNoTeb                           = modntdll.NewProc("RtlNtStatusToDosErrorNoTeb")
425
	procCLSIDFromString                                      = modole32.NewProc("CLSIDFromString")
426
	procCoCreateGuid                                         = modole32.NewProc("CoCreateGuid")
427
	procCoGetObject                                          = modole32.NewProc("CoGetObject")
428
	procCoInitializeEx                                       = modole32.NewProc("CoInitializeEx")
429
	procCoTaskMemFree                                        = modole32.NewProc("CoTaskMemFree")
430
	procCoUninitialize                                       = modole32.NewProc("CoUninitialize")
431
	procStringFromGUID2                                      = modole32.NewProc("StringFromGUID2")
432
	procEnumProcessModules                                   = modpsapi.NewProc("EnumProcessModules")
433
	procEnumProcessModulesEx                                 = modpsapi.NewProc("EnumProcessModulesEx")
434
	procEnumProcesses                                        = modpsapi.NewProc("EnumProcesses")
435
	procGetModuleBaseNameW                                   = modpsapi.NewProc("GetModuleBaseNameW")
436
	procGetModuleFileNameExW                                 = modpsapi.NewProc("GetModuleFileNameExW")
437
	procGetModuleInformation                                 = modpsapi.NewProc("GetModuleInformation")
438
	procQueryWorkingSetEx                                    = modpsapi.NewProc("QueryWorkingSetEx")
439
	procSubscribeServiceChangeNotifications                  = modsechost.NewProc("SubscribeServiceChangeNotifications")
440
	procUnsubscribeServiceChangeNotifications                = modsechost.NewProc("UnsubscribeServiceChangeNotifications")
441
	procGetUserNameExW                                       = modsecur32.NewProc("GetUserNameExW")
442
	procTranslateNameW                                       = modsecur32.NewProc("TranslateNameW")
443
	procSetupDiBuildDriverInfoList                           = modsetupapi.NewProc("SetupDiBuildDriverInfoList")
444
	procSetupDiCallClassInstaller                            = modsetupapi.NewProc("SetupDiCallClassInstaller")
445
	procSetupDiCancelDriverInfoSearch                        = modsetupapi.NewProc("SetupDiCancelDriverInfoSearch")
446
	procSetupDiClassGuidsFromNameExW                         = modsetupapi.NewProc("SetupDiClassGuidsFromNameExW")
447
	procSetupDiClassNameFromGuidExW                          = modsetupapi.NewProc("SetupDiClassNameFromGuidExW")
448
	procSetupDiCreateDeviceInfoListExW                       = modsetupapi.NewProc("SetupDiCreateDeviceInfoListExW")
449
	procSetupDiCreateDeviceInfoW                             = modsetupapi.NewProc("SetupDiCreateDeviceInfoW")
450
	procSetupDiDestroyDeviceInfoList                         = modsetupapi.NewProc("SetupDiDestroyDeviceInfoList")
451
	procSetupDiDestroyDriverInfoList                         = modsetupapi.NewProc("SetupDiDestroyDriverInfoList")
452
	procSetupDiEnumDeviceInfo                                = modsetupapi.NewProc("SetupDiEnumDeviceInfo")
453
	procSetupDiEnumDriverInfoW                               = modsetupapi.NewProc("SetupDiEnumDriverInfoW")
454
	procSetupDiGetClassDevsExW                               = modsetupapi.NewProc("SetupDiGetClassDevsExW")
455
	procSetupDiGetClassInstallParamsW                        = modsetupapi.NewProc("SetupDiGetClassInstallParamsW")
456
	procSetupDiGetDeviceInfoListDetailW                      = modsetupapi.NewProc("SetupDiGetDeviceInfoListDetailW")
457
	procSetupDiGetDeviceInstallParamsW                       = modsetupapi.NewProc("SetupDiGetDeviceInstallParamsW")
458
	procSetupDiGetDeviceInstanceIdW                          = modsetupapi.NewProc("SetupDiGetDeviceInstanceIdW")
459
	procSetupDiGetDevicePropertyW                            = modsetupapi.NewProc("SetupDiGetDevicePropertyW")
460
	procSetupDiGetDeviceRegistryPropertyW                    = modsetupapi.NewProc("SetupDiGetDeviceRegistryPropertyW")
461
	procSetupDiGetDriverInfoDetailW                          = modsetupapi.NewProc("SetupDiGetDriverInfoDetailW")
462
	procSetupDiGetSelectedDevice                             = modsetupapi.NewProc("SetupDiGetSelectedDevice")
463
	procSetupDiGetSelectedDriverW                            = modsetupapi.NewProc("SetupDiGetSelectedDriverW")
464
	procSetupDiOpenDevRegKey                                 = modsetupapi.NewProc("SetupDiOpenDevRegKey")
465
	procSetupDiSetClassInstallParamsW                        = modsetupapi.NewProc("SetupDiSetClassInstallParamsW")
466
	procSetupDiSetDeviceInstallParamsW                       = modsetupapi.NewProc("SetupDiSetDeviceInstallParamsW")
467
	procSetupDiSetDeviceRegistryPropertyW                    = modsetupapi.NewProc("SetupDiSetDeviceRegistryPropertyW")
468
	procSetupDiSetSelectedDevice                             = modsetupapi.NewProc("SetupDiSetSelectedDevice")
469
	procSetupDiSetSelectedDriverW                            = modsetupapi.NewProc("SetupDiSetSelectedDriverW")
470
	procSetupUninstallOEMInfW                                = modsetupapi.NewProc("SetupUninstallOEMInfW")
471
	procCommandLineToArgvW                                   = modshell32.NewProc("CommandLineToArgvW")
472
	procSHGetKnownFolderPath                                 = modshell32.NewProc("SHGetKnownFolderPath")
473
	procShellExecuteW                                        = modshell32.NewProc("ShellExecuteW")
474
	procEnumChildWindows                                     = moduser32.NewProc("EnumChildWindows")
475
	procEnumWindows                                          = moduser32.NewProc("EnumWindows")
476
	procExitWindowsEx                                        = moduser32.NewProc("ExitWindowsEx")
477
	procGetClassNameW                                        = moduser32.NewProc("GetClassNameW")
478
	procGetDesktopWindow                                     = moduser32.NewProc("GetDesktopWindow")
479
	procGetForegroundWindow                                  = moduser32.NewProc("GetForegroundWindow")
480
	procGetGUIThreadInfo                                     = moduser32.NewProc("GetGUIThreadInfo")
481
	procGetKeyboardLayout                                    = moduser32.NewProc("GetKeyboardLayout")
482
	procGetShellWindow                                       = moduser32.NewProc("GetShellWindow")
483
	procGetWindowThreadProcessId                             = moduser32.NewProc("GetWindowThreadProcessId")
484
	procIsWindow                                             = moduser32.NewProc("IsWindow")
485
	procIsWindowUnicode                                      = moduser32.NewProc("IsWindowUnicode")
486
	procIsWindowVisible                                      = moduser32.NewProc("IsWindowVisible")
487
	procLoadKeyboardLayoutW                                  = moduser32.NewProc("LoadKeyboardLayoutW")
488
	procMessageBoxW                                          = moduser32.NewProc("MessageBoxW")
489
	procToUnicodeEx                                          = moduser32.NewProc("ToUnicodeEx")
490
	procUnloadKeyboardLayout                                 = moduser32.NewProc("UnloadKeyboardLayout")
491
	procCreateEnvironmentBlock                               = moduserenv.NewProc("CreateEnvironmentBlock")
492
	procDestroyEnvironmentBlock                              = moduserenv.NewProc("DestroyEnvironmentBlock")
493
	procGetUserProfileDirectoryW                             = moduserenv.NewProc("GetUserProfileDirectoryW")
494
	procGetFileVersionInfoSizeW                              = modversion.NewProc("GetFileVersionInfoSizeW")
495
	procGetFileVersionInfoW                                  = modversion.NewProc("GetFileVersionInfoW")
496
	procVerQueryValueW                                       = modversion.NewProc("VerQueryValueW")
497
	proctimeBeginPeriod                                      = modwinmm.NewProc("timeBeginPeriod")
498
	proctimeEndPeriod                                        = modwinmm.NewProc("timeEndPeriod")
499
	procWinVerifyTrustEx                                     = modwintrust.NewProc("WinVerifyTrustEx")
500
	procFreeAddrInfoW                                        = modws2_32.NewProc("FreeAddrInfoW")
501
	procGetAddrInfoW                                         = modws2_32.NewProc("GetAddrInfoW")
502
	procWSACleanup                                           = modws2_32.NewProc("WSACleanup")
503
	procWSAEnumProtocolsW                                    = modws2_32.NewProc("WSAEnumProtocolsW")
504
	procWSAGetOverlappedResult                               = modws2_32.NewProc("WSAGetOverlappedResult")
505
	procWSAIoctl                                             = modws2_32.NewProc("WSAIoctl")
506
	procWSALookupServiceBeginW                               = modws2_32.NewProc("WSALookupServiceBeginW")
507
	procWSALookupServiceEnd                                  = modws2_32.NewProc("WSALookupServiceEnd")
508
	procWSALookupServiceNextW                                = modws2_32.NewProc("WSALookupServiceNextW")
509
	procWSARecv                                              = modws2_32.NewProc("WSARecv")
510
	procWSARecvFrom                                          = modws2_32.NewProc("WSARecvFrom")
511
	procWSASend                                              = modws2_32.NewProc("WSASend")
512
	procWSASendTo                                            = modws2_32.NewProc("WSASendTo")
513
	procWSASocketW                                           = modws2_32.NewProc("WSASocketW")
514
	procWSAStartup                                           = modws2_32.NewProc("WSAStartup")
515
	procbind                                                 = modws2_32.NewProc("bind")
516
	procclosesocket                                          = modws2_32.NewProc("closesocket")
517
	procconnect                                              = modws2_32.NewProc("connect")
518
	procgethostbyname                                        = modws2_32.NewProc("gethostbyname")
519
	procgetpeername                                          = modws2_32.NewProc("getpeername")
520
	procgetprotobyname                                       = modws2_32.NewProc("getprotobyname")
521
	procgetservbyname                                        = modws2_32.NewProc("getservbyname")
522
	procgetsockname                                          = modws2_32.NewProc("getsockname")
523
	procgetsockopt                                           = modws2_32.NewProc("getsockopt")
524
	proclisten                                               = modws2_32.NewProc("listen")
525
	procntohs                                                = modws2_32.NewProc("ntohs")
526
	procrecvfrom                                             = modws2_32.NewProc("recvfrom")
527
	procsendto                                               = modws2_32.NewProc("sendto")
528
	procsetsockopt                                           = modws2_32.NewProc("setsockopt")
529
	procshutdown                                             = modws2_32.NewProc("shutdown")
530
	procsocket                                               = modws2_32.NewProc("socket")
531
	procWTSEnumerateSessionsW                                = modwtsapi32.NewProc("WTSEnumerateSessionsW")
532
	procWTSFreeMemory                                        = modwtsapi32.NewProc("WTSFreeMemory")
533
	procWTSQueryUserToken                                    = modwtsapi32.NewProc("WTSQueryUserToken")
534
)
535

536
func cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) {
537
	r0, _, _ := syscall.Syscall6(procCM_Get_DevNode_Status.Addr(), 4, uintptr(unsafe.Pointer(status)), uintptr(unsafe.Pointer(problemNumber)), uintptr(devInst), uintptr(flags), 0, 0)
538
	ret = CONFIGRET(r0)
539
	return
540
}
541

542
func cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) {
543
	r0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_ListW.Addr(), 5, uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(flags), 0)
544
	ret = CONFIGRET(r0)
545
	return
546
}
547

548
func cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) {
549
	r0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_List_SizeW.Addr(), 4, uintptr(unsafe.Pointer(len)), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(flags), 0, 0)
550
	ret = CONFIGRET(r0)
551
	return
552
}
553

554
func cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) {
555
	r0, _, _ := syscall.Syscall(procCM_MapCrToWin32Err.Addr(), 2, uintptr(configRet), uintptr(defaultWin32Error), 0)
556
	ret = Errno(r0)
557
	return
558
}
559

560
func AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) {
561
	var _p0 uint32
562
	if resetToDefault {
563
		_p0 = 1
564
	}
565
	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)))
566
	if r1 == 0 {
567
		err = errnoErr(e1)
568
	}
569
	return
570
}
571

572
func AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) {
573
	var _p0 uint32
574
	if disableAllPrivileges {
575
		_p0 = 1
576
	}
577
	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)))
578
	if r1 == 0 {
579
		err = errnoErr(e1)
580
	}
581
	return
582
}
583

584
func 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) {
585
	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)
586
	if r1 == 0 {
587
		err = errnoErr(e1)
588
	}
589
	return
590
}
591

592
func 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) {
593
	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)))
594
	if r0 != 0 {
595
		ret = syscall.Errno(r0)
596
	}
597
	return
598
}
599

600
func ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) {
601
	r1, _, e1 := syscall.Syscall(procChangeServiceConfig2W.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(info)))
602
	if r1 == 0 {
603
		err = errnoErr(e1)
604
	}
605
	return
606
}
607

608
func 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) {
609
	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)
610
	if r1 == 0 {
611
		err = errnoErr(e1)
612
	}
613
	return
614
}
615

616
func checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) {
617
	r1, _, e1 := syscall.Syscall(procCheckTokenMembership.Addr(), 3, uintptr(tokenHandle), uintptr(unsafe.Pointer(sidToCheck)), uintptr(unsafe.Pointer(isMember)))
618
	if r1 == 0 {
619
		err = errnoErr(e1)
620
	}
621
	return
622
}
623

624
func CloseServiceHandle(handle Handle) (err error) {
625
	r1, _, e1 := syscall.Syscall(procCloseServiceHandle.Addr(), 1, uintptr(handle), 0, 0)
626
	if r1 == 0 {
627
		err = errnoErr(e1)
628
	}
629
	return
630
}
631

632
func ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) {
633
	r1, _, e1 := syscall.Syscall(procControlService.Addr(), 3, uintptr(service), uintptr(control), uintptr(unsafe.Pointer(status)))
634
	if r1 == 0 {
635
		err = errnoErr(e1)
636
	}
637
	return
638
}
639

640
func convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) {
641
	r1, _, e1 := syscall.Syscall6(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), 5, uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(securityInformation), uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(strLen)), 0)
642
	if r1 == 0 {
643
		err = errnoErr(e1)
644
	}
645
	return
646
}
647

648
func ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) {
649
	r1, _, e1 := syscall.Syscall(procConvertSidToStringSidW.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid)), 0)
650
	if r1 == 0 {
651
		err = errnoErr(e1)
652
	}
653
	return
654
}
655

656
func convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) {
657
	var _p0 *uint16
658
	_p0, err = syscall.UTF16PtrFromString(str)
659
	if err != nil {
660
		return
661
	}
662
	return _convertStringSecurityDescriptorToSecurityDescriptor(_p0, revision, sd, size)
663
}
664

665
func _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) {
666
	r1, _, e1 := syscall.Syscall6(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), 4, uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size)), 0, 0)
667
	if r1 == 0 {
668
		err = errnoErr(e1)
669
	}
670
	return
671
}
672

673
func ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) {
674
	r1, _, e1 := syscall.Syscall(procConvertStringSidToSidW.Addr(), 2, uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid)), 0)
675
	if r1 == 0 {
676
		err = errnoErr(e1)
677
	}
678
	return
679
}
680

681
func CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) {
682
	r1, _, e1 := syscall.Syscall(procCopySid.Addr(), 3, uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid)))
683
	if r1 == 0 {
684
		err = errnoErr(e1)
685
	}
686
	return
687
}
688

689
func CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) {
690
	var _p0 uint32
691
	if inheritHandles {
692
		_p0 = 1
693
	}
694
	r1, _, e1 := syscall.Syscall12(procCreateProcessAsUserW.Addr(), 11, uintptr(token), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0)
695
	if r1 == 0 {
696
		err = errnoErr(e1)
697
	}
698
	return
699
}
700

701
func 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) {
702
	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)
703
	handle = Handle(r0)
704
	if handle == 0 {
705
		err = errnoErr(e1)
706
	}
707
	return
708
}
709

710
func createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) {
711
	r1, _, e1 := syscall.Syscall6(procCreateWellKnownSid.Addr(), 4, uintptr(sidType), uintptr(unsafe.Pointer(domainSid)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sizeSid)), 0, 0)
712
	if r1 == 0 {
713
		err = errnoErr(e1)
714
	}
715
	return
716
}
717

718
func CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) {
719
	r1, _, e1 := syscall.Syscall6(procCryptAcquireContextW.Addr(), 5, uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags), 0)
720
	if r1 == 0 {
721
		err = errnoErr(e1)
722
	}
723
	return
724
}
725

726
func CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) {
727
	r1, _, e1 := syscall.Syscall(procCryptGenRandom.Addr(), 3, uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf)))
728
	if r1 == 0 {
729
		err = errnoErr(e1)
730
	}
731
	return
732
}
733

734
func CryptReleaseContext(provhandle Handle, flags uint32) (err error) {
735
	r1, _, e1 := syscall.Syscall(procCryptReleaseContext.Addr(), 2, uintptr(provhandle), uintptr(flags), 0)
736
	if r1 == 0 {
737
		err = errnoErr(e1)
738
	}
739
	return
740
}
741

742
func DeleteService(service Handle) (err error) {
743
	r1, _, e1 := syscall.Syscall(procDeleteService.Addr(), 1, uintptr(service), 0, 0)
744
	if r1 == 0 {
745
		err = errnoErr(e1)
746
	}
747
	return
748
}
749

750
func DeregisterEventSource(handle Handle) (err error) {
751
	r1, _, e1 := syscall.Syscall(procDeregisterEventSource.Addr(), 1, uintptr(handle), 0, 0)
752
	if r1 == 0 {
753
		err = errnoErr(e1)
754
	}
755
	return
756
}
757

758
func DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) {
759
	r1, _, e1 := syscall.Syscall6(procDuplicateTokenEx.Addr(), 6, uintptr(existingToken), uintptr(desiredAccess), uintptr(unsafe.Pointer(tokenAttributes)), uintptr(impersonationLevel), uintptr(tokenType), uintptr(unsafe.Pointer(newToken)))
760
	if r1 == 0 {
761
		err = errnoErr(e1)
762
	}
763
	return
764
}
765

766
func EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) {
767
	r1, _, e1 := syscall.Syscall6(procEnumDependentServicesW.Addr(), 6, uintptr(service), uintptr(activityState), uintptr(unsafe.Pointer(services)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)))
768
	if r1 == 0 {
769
		err = errnoErr(e1)
770
	}
771
	return
772
}
773

774
func EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) {
775
	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)
776
	if r1 == 0 {
777
		err = errnoErr(e1)
778
	}
779
	return
780
}
781

782
func EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) {
783
	r0, _, _ := syscall.Syscall(procEqualSid.Addr(), 2, uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2)), 0)
784
	isEqual = r0 != 0
785
	return
786
}
787

788
func FreeSid(sid *SID) (err error) {
789
	r1, _, e1 := syscall.Syscall(procFreeSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0)
790
	if r1 != 0 {
791
		err = errnoErr(e1)
792
	}
793
	return
794
}
795

796
func GetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) {
797
	r1, _, e1 := syscall.Syscall(procGetAce.Addr(), 3, uintptr(unsafe.Pointer(acl)), uintptr(aceIndex), uintptr(unsafe.Pointer(pAce)))
798
	if r1 == 0 {
799
		err = errnoErr(e1)
800
	}
801
	return
802
}
803

804
func GetLengthSid(sid *SID) (len uint32) {
805
	r0, _, _ := syscall.Syscall(procGetLengthSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0)
806
	len = uint32(r0)
807
	return
808
}
809

810
func getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) {
811
	var _p0 *uint16
812
	_p0, ret = syscall.UTF16PtrFromString(objectName)
813
	if ret != nil {
814
		return
815
	}
816
	return _getNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl, sd)
817
}
818

819
func _getNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) {
820
	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)
821
	if r0 != 0 {
822
		ret = syscall.Errno(r0)
823
	}
824
	return
825
}
826

827
func getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) {
828
	r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(control)), uintptr(unsafe.Pointer(revision)))
829
	if r1 == 0 {
830
		err = errnoErr(e1)
831
	}
832
	return
833
}
834

835
func getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) {
836
	var _p0 uint32
837
	if *daclPresent {
838
		_p0 = 1
839
	}
840
	var _p1 uint32
841
	if *daclDefaulted {
842
		_p1 = 1
843
	}
844
	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)
845
	*daclPresent = _p0 != 0
846
	*daclDefaulted = _p1 != 0
847
	if r1 == 0 {
848
		err = errnoErr(e1)
849
	}
850
	return
851
}
852

853
func getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) {
854
	var _p0 uint32
855
	if *groupDefaulted {
856
		_p0 = 1
857
	}
858
	r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(&_p0)))
859
	*groupDefaulted = _p0 != 0
860
	if r1 == 0 {
861
		err = errnoErr(e1)
862
	}
863
	return
864
}
865

866
func getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) {
867
	r0, _, _ := syscall.Syscall(procGetSecurityDescriptorLength.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0)
868
	len = uint32(r0)
869
	return
870
}
871

872
func getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) {
873
	var _p0 uint32
874
	if *ownerDefaulted {
875
		_p0 = 1
876
	}
877
	r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(&_p0)))
878
	*ownerDefaulted = _p0 != 0
879
	if r1 == 0 {
880
		err = errnoErr(e1)
881
	}
882
	return
883
}
884

885
func getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) {
886
	r0, _, _ := syscall.Syscall(procGetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0)
887
	if r0 != 0 {
888
		ret = syscall.Errno(r0)
889
	}
890
	return
891
}
892

893
func getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) {
894
	var _p0 uint32
895
	if *saclPresent {
896
		_p0 = 1
897
	}
898
	var _p1 uint32
899
	if *saclDefaulted {
900
		_p1 = 1
901
	}
902
	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)
903
	*saclPresent = _p0 != 0
904
	*saclDefaulted = _p1 != 0
905
	if r1 == 0 {
906
		err = errnoErr(e1)
907
	}
908
	return
909
}
910

911
func getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) {
912
	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)
913
	if r0 != 0 {
914
		ret = syscall.Errno(r0)
915
	}
916
	return
917
}
918

919
func getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) {
920
	r0, _, _ := syscall.Syscall(procGetSidIdentifierAuthority.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0)
921
	authority = (*SidIdentifierAuthority)(unsafe.Pointer(r0))
922
	return
923
}
924

925
func getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) {
926
	r0, _, _ := syscall.Syscall(procGetSidSubAuthority.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(index), 0)
927
	subAuthority = (*uint32)(unsafe.Pointer(r0))
928
	return
929
}
930

931
func getSidSubAuthorityCount(sid *SID) (count *uint8) {
932
	r0, _, _ := syscall.Syscall(procGetSidSubAuthorityCount.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0)
933
	count = (*uint8)(unsafe.Pointer(r0))
934
	return
935
}
936

937
func GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) {
938
	r1, _, e1 := syscall.Syscall6(procGetTokenInformation.Addr(), 5, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)), 0)
939
	if r1 == 0 {
940
		err = errnoErr(e1)
941
	}
942
	return
943
}
944

945
func ImpersonateSelf(impersonationlevel uint32) (err error) {
946
	r1, _, e1 := syscall.Syscall(procImpersonateSelf.Addr(), 1, uintptr(impersonationlevel), 0, 0)
947
	if r1 == 0 {
948
		err = errnoErr(e1)
949
	}
950
	return
951
}
952

953
func initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) {
954
	r1, _, e1 := syscall.Syscall(procInitializeSecurityDescriptor.Addr(), 2, uintptr(unsafe.Pointer(absoluteSD)), uintptr(revision), 0)
955
	if r1 == 0 {
956
		err = errnoErr(e1)
957
	}
958
	return
959
}
960

961
func InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) {
962
	var _p0 uint32
963
	if forceAppsClosed {
964
		_p0 = 1
965
	}
966
	var _p1 uint32
967
	if rebootAfterShutdown {
968
		_p1 = 1
969
	}
970
	r1, _, e1 := syscall.Syscall6(procInitiateSystemShutdownExW.Addr(), 6, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(message)), uintptr(timeout), uintptr(_p0), uintptr(_p1), uintptr(reason))
971
	if r1 == 0 {
972
		err = errnoErr(e1)
973
	}
974
	return
975
}
976

977
func isTokenRestricted(tokenHandle Token) (ret bool, err error) {
978
	r0, _, e1 := syscall.Syscall(procIsTokenRestricted.Addr(), 1, uintptr(tokenHandle), 0, 0)
979
	ret = r0 != 0
980
	if !ret {
981
		err = errnoErr(e1)
982
	}
983
	return
984
}
985

986
func isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) {
987
	r0, _, _ := syscall.Syscall(procIsValidSecurityDescriptor.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0)
988
	isValid = r0 != 0
989
	return
990
}
991

992
func isValidSid(sid *SID) (isValid bool) {
993
	r0, _, _ := syscall.Syscall(procIsValidSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0)
994
	isValid = r0 != 0
995
	return
996
}
997

998
func isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) {
999
	r0, _, _ := syscall.Syscall(procIsWellKnownSid.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(sidType), 0)
1000
	isWellKnown = r0 != 0
1001
	return
1002
}
1003

1004
func LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) {
1005
	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)
1006
	if r1 == 0 {
1007
		err = errnoErr(e1)
1008
	}
1009
	return
1010
}
1011

1012
func LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) {
1013
	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)
1014
	if r1 == 0 {
1015
		err = errnoErr(e1)
1016
	}
1017
	return
1018
}
1019

1020
func LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) {
1021
	r1, _, e1 := syscall.Syscall(procLookupPrivilegeValueW.Addr(), 3, uintptr(unsafe.Pointer(systemname)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid)))
1022
	if r1 == 0 {
1023
		err = errnoErr(e1)
1024
	}
1025
	return
1026
}
1027

1028
func 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) {
1029
	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)
1030
	if r1 == 0 {
1031
		err = errnoErr(e1)
1032
	}
1033
	return
1034
}
1035

1036
func makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) {
1037
	r1, _, e1 := syscall.Syscall(procMakeSelfRelativeSD.Addr(), 3, uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(selfRelativeSDSize)))
1038
	if r1 == 0 {
1039
		err = errnoErr(e1)
1040
	}
1041
	return
1042
}
1043

1044
func NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) {
1045
	r0, _, _ := syscall.Syscall(procNotifyServiceStatusChangeW.Addr(), 3, uintptr(service), uintptr(notifyMask), uintptr(unsafe.Pointer(notifier)))
1046
	if r0 != 0 {
1047
		ret = syscall.Errno(r0)
1048
	}
1049
	return
1050
}
1051

1052
func OpenProcessToken(process Handle, access uint32, token *Token) (err error) {
1053
	r1, _, e1 := syscall.Syscall(procOpenProcessToken.Addr(), 3, uintptr(process), uintptr(access), uintptr(unsafe.Pointer(token)))
1054
	if r1 == 0 {
1055
		err = errnoErr(e1)
1056
	}
1057
	return
1058
}
1059

1060
func OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) {
1061
	r0, _, e1 := syscall.Syscall(procOpenSCManagerW.Addr(), 3, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(databaseName)), uintptr(access))
1062
	handle = Handle(r0)
1063
	if handle == 0 {
1064
		err = errnoErr(e1)
1065
	}
1066
	return
1067
}
1068

1069
func OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) {
1070
	r0, _, e1 := syscall.Syscall(procOpenServiceW.Addr(), 3, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(access))
1071
	handle = Handle(r0)
1072
	if handle == 0 {
1073
		err = errnoErr(e1)
1074
	}
1075
	return
1076
}
1077

1078
func OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) {
1079
	var _p0 uint32
1080
	if openAsSelf {
1081
		_p0 = 1
1082
	}
1083
	r1, _, e1 := syscall.Syscall6(procOpenThreadToken.Addr(), 4, uintptr(thread), uintptr(access), uintptr(_p0), uintptr(unsafe.Pointer(token)), 0, 0)
1084
	if r1 == 0 {
1085
		err = errnoErr(e1)
1086
	}
1087
	return
1088
}
1089

1090
func QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) {
1091
	r1, _, e1 := syscall.Syscall6(procQueryServiceConfig2W.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0)
1092
	if r1 == 0 {
1093
		err = errnoErr(e1)
1094
	}
1095
	return
1096
}
1097

1098
func QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) {
1099
	r1, _, e1 := syscall.Syscall6(procQueryServiceConfigW.Addr(), 4, uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0)
1100
	if r1 == 0 {
1101
		err = errnoErr(e1)
1102
	}
1103
	return
1104
}
1105

1106
func QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInfo unsafe.Pointer) (err error) {
1107
	err = procQueryServiceDynamicInformation.Find()
1108
	if err != nil {
1109
		return
1110
	}
1111
	r1, _, e1 := syscall.Syscall(procQueryServiceDynamicInformation.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(dynamicInfo))
1112
	if r1 == 0 {
1113
		err = errnoErr(e1)
1114
	}
1115
	return
1116
}
1117

1118
func QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) {
1119
	r1, _, e1 := syscall.Syscall6(procQueryServiceLockStatusW.Addr(), 4, uintptr(mgr), uintptr(unsafe.Pointer(lockStatus)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0)
1120
	if r1 == 0 {
1121
		err = errnoErr(e1)
1122
	}
1123
	return
1124
}
1125

1126
func QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) {
1127
	r1, _, e1 := syscall.Syscall(procQueryServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(status)), 0)
1128
	if r1 == 0 {
1129
		err = errnoErr(e1)
1130
	}
1131
	return
1132
}
1133

1134
func QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) {
1135
	r1, _, e1 := syscall.Syscall6(procQueryServiceStatusEx.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0)
1136
	if r1 == 0 {
1137
		err = errnoErr(e1)
1138
	}
1139
	return
1140
}
1141

1142
func RegCloseKey(key Handle) (regerrno error) {
1143
	r0, _, _ := syscall.Syscall(procRegCloseKey.Addr(), 1, uintptr(key), 0, 0)
1144
	if r0 != 0 {
1145
		regerrno = syscall.Errno(r0)
1146
	}
1147
	return
1148
}
1149

1150
func RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) {
1151
	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)
1152
	if r0 != 0 {
1153
		regerrno = syscall.Errno(r0)
1154
	}
1155
	return
1156
}
1157

1158
func RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) {
1159
	var _p0 uint32
1160
	if watchSubtree {
1161
		_p0 = 1
1162
	}
1163
	var _p1 uint32
1164
	if asynchronous {
1165
		_p1 = 1
1166
	}
1167
	r0, _, _ := syscall.Syscall6(procRegNotifyChangeKeyValue.Addr(), 5, uintptr(key), uintptr(_p0), uintptr(notifyFilter), uintptr(event), uintptr(_p1), 0)
1168
	if r0 != 0 {
1169
		regerrno = syscall.Errno(r0)
1170
	}
1171
	return
1172
}
1173

1174
func RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) {
1175
	r0, _, _ := syscall.Syscall6(procRegOpenKeyExW.Addr(), 5, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result)), 0)
1176
	if r0 != 0 {
1177
		regerrno = syscall.Errno(r0)
1178
	}
1179
	return
1180
}
1181

1182
func 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) {
1183
	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)))
1184
	if r0 != 0 {
1185
		regerrno = syscall.Errno(r0)
1186
	}
1187
	return
1188
}
1189

1190
func RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) {
1191
	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)))
1192
	if r0 != 0 {
1193
		regerrno = syscall.Errno(r0)
1194
	}
1195
	return
1196
}
1197

1198
func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) {
1199
	r0, _, e1 := syscall.Syscall(procRegisterEventSourceW.Addr(), 2, uintptr(unsafe.Pointer(uncServerName)), uintptr(unsafe.Pointer(sourceName)), 0)
1200
	handle = Handle(r0)
1201
	if handle == 0 {
1202
		err = errnoErr(e1)
1203
	}
1204
	return
1205
}
1206

1207
func RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) {
1208
	r0, _, e1 := syscall.Syscall(procRegisterServiceCtrlHandlerExW.Addr(), 3, uintptr(unsafe.Pointer(serviceName)), uintptr(handlerProc), uintptr(context))
1209
	handle = Handle(r0)
1210
	if handle == 0 {
1211
		err = errnoErr(e1)
1212
	}
1213
	return
1214
}
1215

1216
func ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) {
1217
	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)))
1218
	if r1 == 0 {
1219
		err = errnoErr(e1)
1220
	}
1221
	return
1222
}
1223

1224
func RevertToSelf() (err error) {
1225
	r1, _, e1 := syscall.Syscall(procRevertToSelf.Addr(), 0, 0, 0, 0)
1226
	if r1 == 0 {
1227
		err = errnoErr(e1)
1228
	}
1229
	return
1230
}
1231

1232
func setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) {
1233
	r0, _, _ := syscall.Syscall6(procSetEntriesInAclW.Addr(), 4, uintptr(countExplicitEntries), uintptr(unsafe.Pointer(explicitEntries)), uintptr(unsafe.Pointer(oldACL)), uintptr(unsafe.Pointer(newACL)), 0, 0)
1234
	if r0 != 0 {
1235
		ret = syscall.Errno(r0)
1236
	}
1237
	return
1238
}
1239

1240
func SetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) {
1241
	r1, _, e1 := syscall.Syscall(procSetKernelObjectSecurity.Addr(), 3, uintptr(handle), uintptr(securityInformation), uintptr(unsafe.Pointer(securityDescriptor)))
1242
	if r1 == 0 {
1243
		err = errnoErr(e1)
1244
	}
1245
	return
1246
}
1247

1248
func SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) {
1249
	var _p0 *uint16
1250
	_p0, ret = syscall.UTF16PtrFromString(objectName)
1251
	if ret != nil {
1252
		return
1253
	}
1254
	return _SetNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl)
1255
}
1256

1257
func _SetNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) {
1258
	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)
1259
	if r0 != 0 {
1260
		ret = syscall.Errno(r0)
1261
	}
1262
	return
1263
}
1264

1265
func setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) {
1266
	r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(controlBitsOfInterest), uintptr(controlBitsToSet))
1267
	if r1 == 0 {
1268
		err = errnoErr(e1)
1269
	}
1270
	return
1271
}
1272

1273
func setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) {
1274
	var _p0 uint32
1275
	if daclPresent {
1276
		_p0 = 1
1277
	}
1278
	var _p1 uint32
1279
	if daclDefaulted {
1280
		_p1 = 1
1281
	}
1282
	r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(dacl)), uintptr(_p1), 0, 0)
1283
	if r1 == 0 {
1284
		err = errnoErr(e1)
1285
	}
1286
	return
1287
}
1288

1289
func setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) {
1290
	var _p0 uint32
1291
	if groupDefaulted {
1292
		_p0 = 1
1293
	}
1294
	r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(_p0))
1295
	if r1 == 0 {
1296
		err = errnoErr(e1)
1297
	}
1298
	return
1299
}
1300

1301
func setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) {
1302
	var _p0 uint32
1303
	if ownerDefaulted {
1304
		_p0 = 1
1305
	}
1306
	r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(_p0))
1307
	if r1 == 0 {
1308
		err = errnoErr(e1)
1309
	}
1310
	return
1311
}
1312

1313
func setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) {
1314
	syscall.Syscall(procSetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0)
1315
	return
1316
}
1317

1318
func setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) {
1319
	var _p0 uint32
1320
	if saclPresent {
1321
		_p0 = 1
1322
	}
1323
	var _p1 uint32
1324
	if saclDefaulted {
1325
		_p1 = 1
1326
	}
1327
	r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(sacl)), uintptr(_p1), 0, 0)
1328
	if r1 == 0 {
1329
		err = errnoErr(e1)
1330
	}
1331
	return
1332
}
1333

1334
func SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) {
1335
	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)
1336
	if r0 != 0 {
1337
		ret = syscall.Errno(r0)
1338
	}
1339
	return
1340
}
1341

1342
func SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) {
1343
	r1, _, e1 := syscall.Syscall(procSetServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(serviceStatus)), 0)
1344
	if r1 == 0 {
1345
		err = errnoErr(e1)
1346
	}
1347
	return
1348
}
1349

1350
func SetThreadToken(thread *Handle, token Token) (err error) {
1351
	r1, _, e1 := syscall.Syscall(procSetThreadToken.Addr(), 2, uintptr(unsafe.Pointer(thread)), uintptr(token), 0)
1352
	if r1 == 0 {
1353
		err = errnoErr(e1)
1354
	}
1355
	return
1356
}
1357

1358
func SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) {
1359
	r1, _, e1 := syscall.Syscall6(procSetTokenInformation.Addr(), 4, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), 0, 0)
1360
	if r1 == 0 {
1361
		err = errnoErr(e1)
1362
	}
1363
	return
1364
}
1365

1366
func StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) {
1367
	r1, _, e1 := syscall.Syscall(procStartServiceCtrlDispatcherW.Addr(), 1, uintptr(unsafe.Pointer(serviceTable)), 0, 0)
1368
	if r1 == 0 {
1369
		err = errnoErr(e1)
1370
	}
1371
	return
1372
}
1373

1374
func StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) {
1375
	r1, _, e1 := syscall.Syscall(procStartServiceW.Addr(), 3, uintptr(service), uintptr(numArgs), uintptr(unsafe.Pointer(argVectors)))
1376
	if r1 == 0 {
1377
		err = errnoErr(e1)
1378
	}
1379
	return
1380
}
1381

1382
func CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) {
1383
	r1, _, e1 := syscall.Syscall6(procCertAddCertificateContextToStore.Addr(), 4, uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext)), 0, 0)
1384
	if r1 == 0 {
1385
		err = errnoErr(e1)
1386
	}
1387
	return
1388
}
1389

1390
func CertCloseStore(store Handle, flags uint32) (err error) {
1391
	r1, _, e1 := syscall.Syscall(procCertCloseStore.Addr(), 2, uintptr(store), uintptr(flags), 0)
1392
	if r1 == 0 {
1393
		err = errnoErr(e1)
1394
	}
1395
	return
1396
}
1397

1398
func CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) {
1399
	r0, _, e1 := syscall.Syscall(procCertCreateCertificateContext.Addr(), 3, uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen))
1400
	context = (*CertContext)(unsafe.Pointer(r0))
1401
	if context == nil {
1402
		err = errnoErr(e1)
1403
	}
1404
	return
1405
}
1406

1407
func CertDeleteCertificateFromStore(certContext *CertContext) (err error) {
1408
	r1, _, e1 := syscall.Syscall(procCertDeleteCertificateFromStore.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0)
1409
	if r1 == 0 {
1410
		err = errnoErr(e1)
1411
	}
1412
	return
1413
}
1414

1415
func CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) {
1416
	r0, _, _ := syscall.Syscall(procCertDuplicateCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0)
1417
	dupContext = (*CertContext)(unsafe.Pointer(r0))
1418
	return
1419
}
1420

1421
func CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) {
1422
	r0, _, e1 := syscall.Syscall(procCertEnumCertificatesInStore.Addr(), 2, uintptr(store), uintptr(unsafe.Pointer(prevContext)), 0)
1423
	context = (*CertContext)(unsafe.Pointer(r0))
1424
	if context == nil {
1425
		err = errnoErr(e1)
1426
	}
1427
	return
1428
}
1429

1430
func CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) {
1431
	r0, _, e1 := syscall.Syscall6(procCertFindCertificateInStore.Addr(), 6, uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevCertContext)))
1432
	cert = (*CertContext)(unsafe.Pointer(r0))
1433
	if cert == nil {
1434
		err = errnoErr(e1)
1435
	}
1436
	return
1437
}
1438

1439
func CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) {
1440
	r0, _, e1 := syscall.Syscall6(procCertFindChainInStore.Addr(), 6, uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevChainContext)))
1441
	certchain = (*CertChainContext)(unsafe.Pointer(r0))
1442
	if certchain == nil {
1443
		err = errnoErr(e1)
1444
	}
1445
	return
1446
}
1447

1448
func CertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) {
1449
	r0, _, _ := syscall.Syscall(procCertFindExtension.Addr(), 3, uintptr(unsafe.Pointer(objId)), uintptr(countExtensions), uintptr(unsafe.Pointer(extensions)))
1450
	ret = (*CertExtension)(unsafe.Pointer(r0))
1451
	return
1452
}
1453

1454
func CertFreeCertificateChain(ctx *CertChainContext) {
1455
	syscall.Syscall(procCertFreeCertificateChain.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0)
1456
	return
1457
}
1458

1459
func CertFreeCertificateContext(ctx *CertContext) (err error) {
1460
	r1, _, e1 := syscall.Syscall(procCertFreeCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0)
1461
	if r1 == 0 {
1462
		err = errnoErr(e1)
1463
	}
1464
	return
1465
}
1466

1467
func CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) {
1468
	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)
1469
	if r1 == 0 {
1470
		err = errnoErr(e1)
1471
	}
1472
	return
1473
}
1474

1475
func CertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) {
1476
	r0, _, _ := syscall.Syscall6(procCertGetNameStringW.Addr(), 6, uintptr(unsafe.Pointer(certContext)), uintptr(nameType), uintptr(flags), uintptr(typePara), uintptr(unsafe.Pointer(name)), uintptr(size))
1477
	chars = uint32(r0)
1478
	return
1479
}
1480

1481
func CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) {
1482
	r0, _, e1 := syscall.Syscall6(procCertOpenStore.Addr(), 5, uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para), 0)
1483
	handle = Handle(r0)
1484
	if handle == 0 {
1485
		err = errnoErr(e1)
1486
	}
1487
	return
1488
}
1489

1490
func CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) {
1491
	r0, _, e1 := syscall.Syscall(procCertOpenSystemStoreW.Addr(), 2, uintptr(hprov), uintptr(unsafe.Pointer(name)), 0)
1492
	store = Handle(r0)
1493
	if store == 0 {
1494
		err = errnoErr(e1)
1495
	}
1496
	return
1497
}
1498

1499
func CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) {
1500
	r1, _, e1 := syscall.Syscall6(procCertVerifyCertificateChainPolicy.Addr(), 4, uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status)), 0, 0)
1501
	if r1 == 0 {
1502
		err = errnoErr(e1)
1503
	}
1504
	return
1505
}
1506

1507
func CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) {
1508
	var _p0 uint32
1509
	if *callerFreeProvOrNCryptKey {
1510
		_p0 = 1
1511
	}
1512
	r1, _, e1 := syscall.Syscall6(procCryptAcquireCertificatePrivateKey.Addr(), 6, uintptr(unsafe.Pointer(cert)), uintptr(flags), uintptr(parameters), uintptr(unsafe.Pointer(cryptProvOrNCryptKey)), uintptr(unsafe.Pointer(keySpec)), uintptr(unsafe.Pointer(&_p0)))
1513
	*callerFreeProvOrNCryptKey = _p0 != 0
1514
	if r1 == 0 {
1515
		err = errnoErr(e1)
1516
	}
1517
	return
1518
}
1519

1520
func CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) {
1521
	r1, _, e1 := syscall.Syscall9(procCryptDecodeObject.Addr(), 7, uintptr(encodingType), uintptr(unsafe.Pointer(structType)), uintptr(unsafe.Pointer(encodedBytes)), uintptr(lenEncodedBytes), uintptr(flags), uintptr(decoded), uintptr(unsafe.Pointer(decodedLen)), 0, 0)
1522
	if r1 == 0 {
1523
		err = errnoErr(e1)
1524
	}
1525
	return
1526
}
1527

1528
func CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) {
1529
	r1, _, e1 := syscall.Syscall9(procCryptProtectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0)
1530
	if r1 == 0 {
1531
		err = errnoErr(e1)
1532
	}
1533
	return
1534
}
1535

1536
func CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) {
1537
	r1, _, e1 := syscall.Syscall12(procCryptQueryObject.Addr(), 11, uintptr(objectType), uintptr(object), uintptr(expectedContentTypeFlags), uintptr(expectedFormatTypeFlags), uintptr(flags), uintptr(unsafe.Pointer(msgAndCertEncodingType)), uintptr(unsafe.Pointer(contentType)), uintptr(unsafe.Pointer(formatType)), uintptr(unsafe.Pointer(certStore)), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(context)), 0)
1538
	if r1 == 0 {
1539
		err = errnoErr(e1)
1540
	}
1541
	return
1542
}
1543

1544
func CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) {
1545
	r1, _, e1 := syscall.Syscall9(procCryptUnprotectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0)
1546
	if r1 == 0 {
1547
		err = errnoErr(e1)
1548
	}
1549
	return
1550
}
1551

1552
func PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) {
1553
	r0, _, e1 := syscall.Syscall(procPFXImportCertStore.Addr(), 3, uintptr(unsafe.Pointer(pfx)), uintptr(unsafe.Pointer(password)), uintptr(flags))
1554
	store = Handle(r0)
1555
	if store == 0 {
1556
		err = errnoErr(e1)
1557
	}
1558
	return
1559
}
1560

1561
func DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) {
1562
	r0, _, _ := syscall.Syscall(procDnsNameCompare_W.Addr(), 2, uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2)), 0)
1563
	same = r0 != 0
1564
	return
1565
}
1566

1567
func DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) {
1568
	var _p0 *uint16
1569
	_p0, status = syscall.UTF16PtrFromString(name)
1570
	if status != nil {
1571
		return
1572
	}
1573
	return _DnsQuery(_p0, qtype, options, extra, qrs, pr)
1574
}
1575

1576
func _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) {
1577
	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)))
1578
	if r0 != 0 {
1579
		status = syscall.Errno(r0)
1580
	}
1581
	return
1582
}
1583

1584
func DnsRecordListFree(rl *DNSRecord, freetype uint32) {
1585
	syscall.Syscall(procDnsRecordListFree.Addr(), 2, uintptr(unsafe.Pointer(rl)), uintptr(freetype), 0)
1586
	return
1587
}
1588

1589
func DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) {
1590
	r0, _, _ := syscall.Syscall6(procDwmGetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0)
1591
	if r0 != 0 {
1592
		ret = syscall.Errno(r0)
1593
	}
1594
	return
1595
}
1596

1597
func DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) {
1598
	r0, _, _ := syscall.Syscall6(procDwmSetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0)
1599
	if r0 != 0 {
1600
		ret = syscall.Errno(r0)
1601
	}
1602
	return
1603
}
1604

1605
func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) {
1606
	r0, _, _ := syscall.Syscall6(procGetAdaptersAddresses.Addr(), 5, uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)), 0)
1607
	if r0 != 0 {
1608
		errcode = syscall.Errno(r0)
1609
	}
1610
	return
1611
}
1612

1613
func GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) {
1614
	r0, _, _ := syscall.Syscall(procGetAdaptersInfo.Addr(), 2, uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol)), 0)
1615
	if r0 != 0 {
1616
		errcode = syscall.Errno(r0)
1617
	}
1618
	return
1619
}
1620

1621
func getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) {
1622
	r0, _, _ := syscall.Syscall(procGetBestInterfaceEx.Addr(), 2, uintptr(sockaddr), uintptr(unsafe.Pointer(pdwBestIfIndex)), 0)
1623
	if r0 != 0 {
1624
		errcode = syscall.Errno(r0)
1625
	}
1626
	return
1627
}
1628

1629
func GetIfEntry(pIfRow *MibIfRow) (errcode error) {
1630
	r0, _, _ := syscall.Syscall(procGetIfEntry.Addr(), 1, uintptr(unsafe.Pointer(pIfRow)), 0, 0)
1631
	if r0 != 0 {
1632
		errcode = syscall.Errno(r0)
1633
	}
1634
	return
1635
}
1636

1637
func AddDllDirectory(path *uint16) (cookie uintptr, err error) {
1638
	r0, _, e1 := syscall.Syscall(procAddDllDirectory.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)
1639
	cookie = uintptr(r0)
1640
	if cookie == 0 {
1641
		err = errnoErr(e1)
1642
	}
1643
	return
1644
}
1645

1646
func AssignProcessToJobObject(job Handle, process Handle) (err error) {
1647
	r1, _, e1 := syscall.Syscall(procAssignProcessToJobObject.Addr(), 2, uintptr(job), uintptr(process), 0)
1648
	if r1 == 0 {
1649
		err = errnoErr(e1)
1650
	}
1651
	return
1652
}
1653

1654
func CancelIo(s Handle) (err error) {
1655
	r1, _, e1 := syscall.Syscall(procCancelIo.Addr(), 1, uintptr(s), 0, 0)
1656
	if r1 == 0 {
1657
		err = errnoErr(e1)
1658
	}
1659
	return
1660
}
1661

1662
func CancelIoEx(s Handle, o *Overlapped) (err error) {
1663
	r1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(s), uintptr(unsafe.Pointer(o)), 0)
1664
	if r1 == 0 {
1665
		err = errnoErr(e1)
1666
	}
1667
	return
1668
}
1669

1670
func ClearCommBreak(handle Handle) (err error) {
1671
	r1, _, e1 := syscall.Syscall(procClearCommBreak.Addr(), 1, uintptr(handle), 0, 0)
1672
	if r1 == 0 {
1673
		err = errnoErr(e1)
1674
	}
1675
	return
1676
}
1677

1678
func ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error) {
1679
	r1, _, e1 := syscall.Syscall(procClearCommError.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpErrors)), uintptr(unsafe.Pointer(lpStat)))
1680
	if r1 == 0 {
1681
		err = errnoErr(e1)
1682
	}
1683
	return
1684
}
1685

1686
func CloseHandle(handle Handle) (err error) {
1687
	r1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0)
1688
	if r1 == 0 {
1689
		err = errnoErr(e1)
1690
	}
1691
	return
1692
}
1693

1694
func ClosePseudoConsole(console Handle) {
1695
	syscall.Syscall(procClosePseudoConsole.Addr(), 1, uintptr(console), 0, 0)
1696
	return
1697
}
1698

1699
func ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) {
1700
	r1, _, e1 := syscall.Syscall(procConnectNamedPipe.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(overlapped)), 0)
1701
	if r1 == 0 {
1702
		err = errnoErr(e1)
1703
	}
1704
	return
1705
}
1706

1707
func CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) {
1708
	r1, _, e1 := syscall.Syscall(procCreateDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa)), 0)
1709
	if r1 == 0 {
1710
		err = errnoErr(e1)
1711
	}
1712
	return
1713
}
1714

1715
func CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) {
1716
	r0, _, e1 := syscall.Syscall6(procCreateEventExW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0)
1717
	handle = Handle(r0)
1718
	if handle == 0 || e1 == ERROR_ALREADY_EXISTS {
1719
		err = errnoErr(e1)
1720
	}
1721
	return
1722
}
1723

1724
func CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) {
1725
	r0, _, e1 := syscall.Syscall6(procCreateEventW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name)), 0, 0)
1726
	handle = Handle(r0)
1727
	if handle == 0 || e1 == ERROR_ALREADY_EXISTS {
1728
		err = errnoErr(e1)
1729
	}
1730
	return
1731
}
1732

1733
func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) {
1734
	r0, _, e1 := syscall.Syscall6(procCreateFileMappingW.Addr(), 6, uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name)))
1735
	handle = Handle(r0)
1736
	if handle == 0 || e1 == ERROR_ALREADY_EXISTS {
1737
		err = errnoErr(e1)
1738
	}
1739
	return
1740
}
1741

1742
func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) {
1743
	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)
1744
	handle = Handle(r0)
1745
	if handle == InvalidHandle {
1746
		err = errnoErr(e1)
1747
	}
1748
	return
1749
}
1750

1751
func CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) {
1752
	r1, _, e1 := syscall.Syscall(procCreateHardLinkW.Addr(), 3, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved))
1753
	if r1&0xff == 0 {
1754
		err = errnoErr(e1)
1755
	}
1756
	return
1757
}
1758

1759
func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error) {
1760
	r0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt), 0, 0)
1761
	handle = Handle(r0)
1762
	if handle == 0 {
1763
		err = errnoErr(e1)
1764
	}
1765
	return
1766
}
1767

1768
func CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) {
1769
	r0, _, e1 := syscall.Syscall(procCreateJobObjectW.Addr(), 2, uintptr(unsafe.Pointer(jobAttr)), uintptr(unsafe.Pointer(name)), 0)
1770
	handle = Handle(r0)
1771
	if handle == 0 {
1772
		err = errnoErr(e1)
1773
	}
1774
	return
1775
}
1776

1777
func CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) {
1778
	r0, _, e1 := syscall.Syscall6(procCreateMutexExW.Addr(), 4, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0)
1779
	handle = Handle(r0)
1780
	if handle == 0 || e1 == ERROR_ALREADY_EXISTS {
1781
		err = errnoErr(e1)
1782
	}
1783
	return
1784
}
1785

1786
func CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) {
1787
	var _p0 uint32
1788
	if initialOwner {
1789
		_p0 = 1
1790
	}
1791
	r0, _, e1 := syscall.Syscall(procCreateMutexW.Addr(), 3, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(_p0), uintptr(unsafe.Pointer(name)))
1792
	handle = Handle(r0)
1793
	if handle == 0 || e1 == ERROR_ALREADY_EXISTS {
1794
		err = errnoErr(e1)
1795
	}
1796
	return
1797
}
1798

1799
func CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) {
1800
	r0, _, e1 := syscall.Syscall9(procCreateNamedPipeW.Addr(), 8, uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(pipeMode), uintptr(maxInstances), uintptr(outSize), uintptr(inSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa)), 0)
1801
	handle = Handle(r0)
1802
	if handle == InvalidHandle {
1803
		err = errnoErr(e1)
1804
	}
1805
	return
1806
}
1807

1808
func CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) {
1809
	r1, _, e1 := syscall.Syscall6(procCreatePipe.Addr(), 4, uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size), 0, 0)
1810
	if r1 == 0 {
1811
		err = errnoErr(e1)
1812
	}
1813
	return
1814
}
1815

1816
func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) {
1817
	var _p0 uint32
1818
	if inheritHandles {
1819
		_p0 = 1
1820
	}
1821
	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)
1822
	if r1 == 0 {
1823
		err = errnoErr(e1)
1824
	}
1825
	return
1826
}
1827

1828
func createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) {
1829
	r0, _, _ := syscall.Syscall6(procCreatePseudoConsole.Addr(), 5, uintptr(size), uintptr(in), uintptr(out), uintptr(flags), uintptr(unsafe.Pointer(pconsole)), 0)
1830
	if r0 != 0 {
1831
		hr = syscall.Errno(r0)
1832
	}
1833
	return
1834
}
1835

1836
func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) {
1837
	r1, _, e1 := syscall.Syscall(procCreateSymbolicLinkW.Addr(), 3, uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags))
1838
	if r1&0xff == 0 {
1839
		err = errnoErr(e1)
1840
	}
1841
	return
1842
}
1843

1844
func CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) {
1845
	r0, _, e1 := syscall.Syscall(procCreateToolhelp32Snapshot.Addr(), 2, uintptr(flags), uintptr(processId), 0)
1846
	handle = Handle(r0)
1847
	if handle == InvalidHandle {
1848
		err = errnoErr(e1)
1849
	}
1850
	return
1851
}
1852

1853
func DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) {
1854
	r1, _, e1 := syscall.Syscall(procDefineDosDeviceW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)))
1855
	if r1 == 0 {
1856
		err = errnoErr(e1)
1857
	}
1858
	return
1859
}
1860

1861
func DeleteFile(path *uint16) (err error) {
1862
	r1, _, e1 := syscall.Syscall(procDeleteFileW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)
1863
	if r1 == 0 {
1864
		err = errnoErr(e1)
1865
	}
1866
	return
1867
}
1868

1869
func deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) {
1870
	syscall.Syscall(procDeleteProcThreadAttributeList.Addr(), 1, uintptr(unsafe.Pointer(attrlist)), 0, 0)
1871
	return
1872
}
1873

1874
func DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) {
1875
	r1, _, e1 := syscall.Syscall(procDeleteVolumeMountPointW.Addr(), 1, uintptr(unsafe.Pointer(volumeMountPoint)), 0, 0)
1876
	if r1 == 0 {
1877
		err = errnoErr(e1)
1878
	}
1879
	return
1880
}
1881

1882
func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) {
1883
	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)
1884
	if r1 == 0 {
1885
		err = errnoErr(e1)
1886
	}
1887
	return
1888
}
1889

1890
func DisconnectNamedPipe(pipe Handle) (err error) {
1891
	r1, _, e1 := syscall.Syscall(procDisconnectNamedPipe.Addr(), 1, uintptr(pipe), 0, 0)
1892
	if r1 == 0 {
1893
		err = errnoErr(e1)
1894
	}
1895
	return
1896
}
1897

1898
func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) {
1899
	var _p0 uint32
1900
	if bInheritHandle {
1901
		_p0 = 1
1902
	}
1903
	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)
1904
	if r1 == 0 {
1905
		err = errnoErr(e1)
1906
	}
1907
	return
1908
}
1909

1910
func EscapeCommFunction(handle Handle, dwFunc uint32) (err error) {
1911
	r1, _, e1 := syscall.Syscall(procEscapeCommFunction.Addr(), 2, uintptr(handle), uintptr(dwFunc), 0)
1912
	if r1 == 0 {
1913
		err = errnoErr(e1)
1914
	}
1915
	return
1916
}
1917

1918
func ExitProcess(exitcode uint32) {
1919
	syscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0)
1920
	return
1921
}
1922

1923
func ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) {
1924
	r0, _, e1 := syscall.Syscall(procExpandEnvironmentStringsW.Addr(), 3, uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size))
1925
	n = uint32(r0)
1926
	if n == 0 {
1927
		err = errnoErr(e1)
1928
	}
1929
	return
1930
}
1931

1932
func FindClose(handle Handle) (err error) {
1933
	r1, _, e1 := syscall.Syscall(procFindClose.Addr(), 1, uintptr(handle), 0, 0)
1934
	if r1 == 0 {
1935
		err = errnoErr(e1)
1936
	}
1937
	return
1938
}
1939

1940
func FindCloseChangeNotification(handle Handle) (err error) {
1941
	r1, _, e1 := syscall.Syscall(procFindCloseChangeNotification.Addr(), 1, uintptr(handle), 0, 0)
1942
	if r1 == 0 {
1943
		err = errnoErr(e1)
1944
	}
1945
	return
1946
}
1947

1948
func FindFirstChangeNotification(path string, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) {
1949
	var _p0 *uint16
1950
	_p0, err = syscall.UTF16PtrFromString(path)
1951
	if err != nil {
1952
		return
1953
	}
1954
	return _FindFirstChangeNotification(_p0, watchSubtree, notifyFilter)
1955
}
1956

1957
func _FindFirstChangeNotification(path *uint16, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) {
1958
	var _p1 uint32
1959
	if watchSubtree {
1960
		_p1 = 1
1961
	}
1962
	r0, _, e1 := syscall.Syscall(procFindFirstChangeNotificationW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(_p1), uintptr(notifyFilter))
1963
	handle = Handle(r0)
1964
	if handle == InvalidHandle {
1965
		err = errnoErr(e1)
1966
	}
1967
	return
1968
}
1969

1970
func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) {
1971
	r0, _, e1 := syscall.Syscall(procFindFirstFileW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)), 0)
1972
	handle = Handle(r0)
1973
	if handle == InvalidHandle {
1974
		err = errnoErr(e1)
1975
	}
1976
	return
1977
}
1978

1979
func FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) {
1980
	r0, _, e1 := syscall.Syscall(procFindFirstVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength))
1981
	handle = Handle(r0)
1982
	if handle == InvalidHandle {
1983
		err = errnoErr(e1)
1984
	}
1985
	return
1986
}
1987

1988
func FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) {
1989
	r0, _, e1 := syscall.Syscall(procFindFirstVolumeW.Addr(), 2, uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength), 0)
1990
	handle = Handle(r0)
1991
	if handle == InvalidHandle {
1992
		err = errnoErr(e1)
1993
	}
1994
	return
1995
}
1996

1997
func FindNextChangeNotification(handle Handle) (err error) {
1998
	r1, _, e1 := syscall.Syscall(procFindNextChangeNotification.Addr(), 1, uintptr(handle), 0, 0)
1999
	if r1 == 0 {
2000
		err = errnoErr(e1)
2001
	}
2002
	return
2003
}
2004

2005
func findNextFile1(handle Handle, data *win32finddata1) (err error) {
2006
	r1, _, e1 := syscall.Syscall(procFindNextFileW.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0)
2007
	if r1 == 0 {
2008
		err = errnoErr(e1)
2009
	}
2010
	return
2011
}
2012

2013
func FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) {
2014
	r1, _, e1 := syscall.Syscall(procFindNextVolumeMountPointW.Addr(), 3, uintptr(findVolumeMountPoint), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength))
2015
	if r1 == 0 {
2016
		err = errnoErr(e1)
2017
	}
2018
	return
2019
}
2020

2021
func FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) {
2022
	r1, _, e1 := syscall.Syscall(procFindNextVolumeW.Addr(), 3, uintptr(findVolume), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength))
2023
	if r1 == 0 {
2024
		err = errnoErr(e1)
2025
	}
2026
	return
2027
}
2028

2029
func findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) {
2030
	r0, _, e1 := syscall.Syscall(procFindResourceW.Addr(), 3, uintptr(module), uintptr(name), uintptr(resType))
2031
	resInfo = Handle(r0)
2032
	if resInfo == 0 {
2033
		err = errnoErr(e1)
2034
	}
2035
	return
2036
}
2037

2038
func FindVolumeClose(findVolume Handle) (err error) {
2039
	r1, _, e1 := syscall.Syscall(procFindVolumeClose.Addr(), 1, uintptr(findVolume), 0, 0)
2040
	if r1 == 0 {
2041
		err = errnoErr(e1)
2042
	}
2043
	return
2044
}
2045

2046
func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) {
2047
	r1, _, e1 := syscall.Syscall(procFindVolumeMountPointClose.Addr(), 1, uintptr(findVolumeMountPoint), 0, 0)
2048
	if r1 == 0 {
2049
		err = errnoErr(e1)
2050
	}
2051
	return
2052
}
2053

2054
func FlushFileBuffers(handle Handle) (err error) {
2055
	r1, _, e1 := syscall.Syscall(procFlushFileBuffers.Addr(), 1, uintptr(handle), 0, 0)
2056
	if r1 == 0 {
2057
		err = errnoErr(e1)
2058
	}
2059
	return
2060
}
2061

2062
func FlushViewOfFile(addr uintptr, length uintptr) (err error) {
2063
	r1, _, e1 := syscall.Syscall(procFlushViewOfFile.Addr(), 2, uintptr(addr), uintptr(length), 0)
2064
	if r1 == 0 {
2065
		err = errnoErr(e1)
2066
	}
2067
	return
2068
}
2069

2070
func FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) {
2071
	var _p0 *uint16
2072
	if len(buf) > 0 {
2073
		_p0 = &buf[0]
2074
	}
2075
	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)
2076
	n = uint32(r0)
2077
	if n == 0 {
2078
		err = errnoErr(e1)
2079
	}
2080
	return
2081
}
2082

2083
func FreeEnvironmentStrings(envs *uint16) (err error) {
2084
	r1, _, e1 := syscall.Syscall(procFreeEnvironmentStringsW.Addr(), 1, uintptr(unsafe.Pointer(envs)), 0, 0)
2085
	if r1 == 0 {
2086
		err = errnoErr(e1)
2087
	}
2088
	return
2089
}
2090

2091
func FreeLibrary(handle Handle) (err error) {
2092
	r1, _, e1 := syscall.Syscall(procFreeLibrary.Addr(), 1, uintptr(handle), 0, 0)
2093
	if r1 == 0 {
2094
		err = errnoErr(e1)
2095
	}
2096
	return
2097
}
2098

2099
func GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) {
2100
	r1, _, e1 := syscall.Syscall(procGenerateConsoleCtrlEvent.Addr(), 2, uintptr(ctrlEvent), uintptr(processGroupID), 0)
2101
	if r1 == 0 {
2102
		err = errnoErr(e1)
2103
	}
2104
	return
2105
}
2106

2107
func GetACP() (acp uint32) {
2108
	r0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0)
2109
	acp = uint32(r0)
2110
	return
2111
}
2112

2113
func GetActiveProcessorCount(groupNumber uint16) (ret uint32) {
2114
	r0, _, _ := syscall.Syscall(procGetActiveProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0)
2115
	ret = uint32(r0)
2116
	return
2117
}
2118

2119
func GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) {
2120
	r1, _, e1 := syscall.Syscall(procGetCommModemStatus.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpModemStat)), 0)
2121
	if r1 == 0 {
2122
		err = errnoErr(e1)
2123
	}
2124
	return
2125
}
2126

2127
func GetCommState(handle Handle, lpDCB *DCB) (err error) {
2128
	r1, _, e1 := syscall.Syscall(procGetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0)
2129
	if r1 == 0 {
2130
		err = errnoErr(e1)
2131
	}
2132
	return
2133
}
2134

2135
func GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) {
2136
	r1, _, e1 := syscall.Syscall(procGetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0)
2137
	if r1 == 0 {
2138
		err = errnoErr(e1)
2139
	}
2140
	return
2141
}
2142

2143
func GetCommandLine() (cmd *uint16) {
2144
	r0, _, _ := syscall.Syscall(procGetCommandLineW.Addr(), 0, 0, 0, 0)
2145
	cmd = (*uint16)(unsafe.Pointer(r0))
2146
	return
2147
}
2148

2149
func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) {
2150
	r1, _, e1 := syscall.Syscall(procGetComputerNameExW.Addr(), 3, uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)))
2151
	if r1 == 0 {
2152
		err = errnoErr(e1)
2153
	}
2154
	return
2155
}
2156

2157
func GetComputerName(buf *uint16, n *uint32) (err error) {
2158
	r1, _, e1 := syscall.Syscall(procGetComputerNameW.Addr(), 2, uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)), 0)
2159
	if r1 == 0 {
2160
		err = errnoErr(e1)
2161
	}
2162
	return
2163
}
2164

2165
func GetConsoleMode(console Handle, mode *uint32) (err error) {
2166
	r1, _, e1 := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(mode)), 0)
2167
	if r1 == 0 {
2168
		err = errnoErr(e1)
2169
	}
2170
	return
2171
}
2172

2173
func GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) {
2174
	r1, _, e1 := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(info)), 0)
2175
	if r1 == 0 {
2176
		err = errnoErr(e1)
2177
	}
2178
	return
2179
}
2180

2181
func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) {
2182
	r0, _, e1 := syscall.Syscall(procGetCurrentDirectoryW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0)
2183
	n = uint32(r0)
2184
	if n == 0 {
2185
		err = errnoErr(e1)
2186
	}
2187
	return
2188
}
2189

2190
func GetCurrentProcessId() (pid uint32) {
2191
	r0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0)
2192
	pid = uint32(r0)
2193
	return
2194
}
2195

2196
func GetCurrentThreadId() (id uint32) {
2197
	r0, _, _ := syscall.Syscall(procGetCurrentThreadId.Addr(), 0, 0, 0, 0)
2198
	id = uint32(r0)
2199
	return
2200
}
2201

2202
func GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) {
2203
	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)
2204
	if r1 == 0 {
2205
		err = errnoErr(e1)
2206
	}
2207
	return
2208
}
2209

2210
func GetDriveType(rootPathName *uint16) (driveType uint32) {
2211
	r0, _, _ := syscall.Syscall(procGetDriveTypeW.Addr(), 1, uintptr(unsafe.Pointer(rootPathName)), 0, 0)
2212
	driveType = uint32(r0)
2213
	return
2214
}
2215

2216
func GetEnvironmentStrings() (envs *uint16, err error) {
2217
	r0, _, e1 := syscall.Syscall(procGetEnvironmentStringsW.Addr(), 0, 0, 0, 0)
2218
	envs = (*uint16)(unsafe.Pointer(r0))
2219
	if envs == nil {
2220
		err = errnoErr(e1)
2221
	}
2222
	return
2223
}
2224

2225
func GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) {
2226
	r0, _, e1 := syscall.Syscall(procGetEnvironmentVariableW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size))
2227
	n = uint32(r0)
2228
	if n == 0 {
2229
		err = errnoErr(e1)
2230
	}
2231
	return
2232
}
2233

2234
func GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) {
2235
	r1, _, e1 := syscall.Syscall(procGetExitCodeProcess.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(exitcode)), 0)
2236
	if r1 == 0 {
2237
		err = errnoErr(e1)
2238
	}
2239
	return
2240
}
2241

2242
func GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) {
2243
	r1, _, e1 := syscall.Syscall(procGetFileAttributesExW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info)))
2244
	if r1 == 0 {
2245
		err = errnoErr(e1)
2246
	}
2247
	return
2248
}
2249

2250
func GetFileAttributes(name *uint16) (attrs uint32, err error) {
2251
	r0, _, e1 := syscall.Syscall(procGetFileAttributesW.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0)
2252
	attrs = uint32(r0)
2253
	if attrs == INVALID_FILE_ATTRIBUTES {
2254
		err = errnoErr(e1)
2255
	}
2256
	return
2257
}
2258

2259
func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) {
2260
	r1, _, e1 := syscall.Syscall(procGetFileInformationByHandle.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0)
2261
	if r1 == 0 {
2262
		err = errnoErr(e1)
2263
	}
2264
	return
2265
}
2266

2267
func GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) {
2268
	r1, _, e1 := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen), 0, 0)
2269
	if r1 == 0 {
2270
		err = errnoErr(e1)
2271
	}
2272
	return
2273
}
2274

2275
func GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) {
2276
	r1, _, e1 := syscall.Syscall6(procGetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0)
2277
	if r1 == 0 {
2278
		err = errnoErr(e1)
2279
	}
2280
	return
2281
}
2282

2283
func GetFileType(filehandle Handle) (n uint32, err error) {
2284
	r0, _, e1 := syscall.Syscall(procGetFileType.Addr(), 1, uintptr(filehandle), 0, 0)
2285
	n = uint32(r0)
2286
	if n == 0 {
2287
		err = errnoErr(e1)
2288
	}
2289
	return
2290
}
2291

2292
func GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) {
2293
	r0, _, e1 := syscall.Syscall6(procGetFinalPathNameByHandleW.Addr(), 4, uintptr(file), uintptr(unsafe.Pointer(filePath)), uintptr(filePathSize), uintptr(flags), 0, 0)
2294
	n = uint32(r0)
2295
	if n == 0 {
2296
		err = errnoErr(e1)
2297
	}
2298
	return
2299
}
2300

2301
func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) {
2302
	r0, _, e1 := syscall.Syscall6(procGetFullPathNameW.Addr(), 4, uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname)), 0, 0)
2303
	n = uint32(r0)
2304
	if n == 0 {
2305
		err = errnoErr(e1)
2306
	}
2307
	return
2308
}
2309

2310
func GetLargePageMinimum() (size uintptr) {
2311
	r0, _, _ := syscall.Syscall(procGetLargePageMinimum.Addr(), 0, 0, 0, 0)
2312
	size = uintptr(r0)
2313
	return
2314
}
2315

2316
func GetLastError() (lasterr error) {
2317
	r0, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0)
2318
	if r0 != 0 {
2319
		lasterr = syscall.Errno(r0)
2320
	}
2321
	return
2322
}
2323

2324
func GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) {
2325
	r0, _, e1 := syscall.Syscall(procGetLogicalDriveStringsW.Addr(), 2, uintptr(bufferLength), uintptr(unsafe.Pointer(buffer)), 0)
2326
	n = uint32(r0)
2327
	if n == 0 {
2328
		err = errnoErr(e1)
2329
	}
2330
	return
2331
}
2332

2333
func GetLogicalDrives() (drivesBitMask uint32, err error) {
2334
	r0, _, e1 := syscall.Syscall(procGetLogicalDrives.Addr(), 0, 0, 0, 0)
2335
	drivesBitMask = uint32(r0)
2336
	if drivesBitMask == 0 {
2337
		err = errnoErr(e1)
2338
	}
2339
	return
2340
}
2341

2342
func GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) {
2343
	r0, _, e1 := syscall.Syscall(procGetLongPathNameW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen))
2344
	n = uint32(r0)
2345
	if n == 0 {
2346
		err = errnoErr(e1)
2347
	}
2348
	return
2349
}
2350

2351
func GetMaximumProcessorCount(groupNumber uint16) (ret uint32) {
2352
	r0, _, _ := syscall.Syscall(procGetMaximumProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0)
2353
	ret = uint32(r0)
2354
	return
2355
}
2356

2357
func GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) {
2358
	r0, _, e1 := syscall.Syscall(procGetModuleFileNameW.Addr(), 3, uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size))
2359
	n = uint32(r0)
2360
	if n == 0 {
2361
		err = errnoErr(e1)
2362
	}
2363
	return
2364
}
2365

2366
func GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) {
2367
	r1, _, e1 := syscall.Syscall(procGetModuleHandleExW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(moduleName)), uintptr(unsafe.Pointer(module)))
2368
	if r1 == 0 {
2369
		err = errnoErr(e1)
2370
	}
2371
	return
2372
}
2373

2374
func GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) {
2375
	r1, _, e1 := syscall.Syscall9(procGetNamedPipeHandleStateW.Addr(), 7, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize), 0, 0)
2376
	if r1 == 0 {
2377
		err = errnoErr(e1)
2378
	}
2379
	return
2380
}
2381

2382
func GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) {
2383
	r1, _, e1 := syscall.Syscall6(procGetNamedPipeInfo.Addr(), 5, uintptr(pipe), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(outSize)), uintptr(unsafe.Pointer(inSize)), uintptr(unsafe.Pointer(maxInstances)), 0)
2384
	if r1 == 0 {
2385
		err = errnoErr(e1)
2386
	}
2387
	return
2388
}
2389

2390
func GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) {
2391
	var _p0 uint32
2392
	if wait {
2393
		_p0 = 1
2394
	}
2395
	r1, _, e1 := syscall.Syscall6(procGetOverlappedResult.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0), 0, 0)
2396
	if r1 == 0 {
2397
		err = errnoErr(e1)
2398
	}
2399
	return
2400
}
2401

2402
func GetPriorityClass(process Handle) (ret uint32, err error) {
2403
	r0, _, e1 := syscall.Syscall(procGetPriorityClass.Addr(), 1, uintptr(process), 0, 0)
2404
	ret = uint32(r0)
2405
	if ret == 0 {
2406
		err = errnoErr(e1)
2407
	}
2408
	return
2409
}
2410

2411
func GetProcAddress(module Handle, procname string) (proc uintptr, err error) {
2412
	var _p0 *byte
2413
	_p0, err = syscall.BytePtrFromString(procname)
2414
	if err != nil {
2415
		return
2416
	}
2417
	return _GetProcAddress(module, _p0)
2418
}
2419

2420
func _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) {
2421
	r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), uintptr(unsafe.Pointer(procname)), 0)
2422
	proc = uintptr(r0)
2423
	if proc == 0 {
2424
		err = errnoErr(e1)
2425
	}
2426
	return
2427
}
2428

2429
func GetProcessId(process Handle) (id uint32, err error) {
2430
	r0, _, e1 := syscall.Syscall(procGetProcessId.Addr(), 1, uintptr(process), 0, 0)
2431
	id = uint32(r0)
2432
	if id == 0 {
2433
		err = errnoErr(e1)
2434
	}
2435
	return
2436
}
2437

2438
func getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {
2439
	r1, _, e1 := syscall.Syscall6(procGetProcessPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0)
2440
	if r1 == 0 {
2441
		err = errnoErr(e1)
2442
	}
2443
	return
2444
}
2445

2446
func GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) {
2447
	r1, _, e1 := syscall.Syscall(procGetProcessShutdownParameters.Addr(), 2, uintptr(unsafe.Pointer(level)), uintptr(unsafe.Pointer(flags)), 0)
2448
	if r1 == 0 {
2449
		err = errnoErr(e1)
2450
	}
2451
	return
2452
}
2453

2454
func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) {
2455
	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)
2456
	if r1 == 0 {
2457
		err = errnoErr(e1)
2458
	}
2459
	return
2460
}
2461

2462
func GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) {
2463
	syscall.Syscall6(procGetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(unsafe.Pointer(lpMinimumWorkingSetSize)), uintptr(unsafe.Pointer(lpMaximumWorkingSetSize)), uintptr(unsafe.Pointer(flags)), 0, 0)
2464
	return
2465
}
2466

2467
func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error) {
2468
	r1, _, e1 := syscall.Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout), 0)
2469
	if r1 == 0 {
2470
		err = errnoErr(e1)
2471
	}
2472
	return
2473
}
2474

2475
func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) {
2476
	r0, _, e1 := syscall.Syscall(procGetShortPathNameW.Addr(), 3, uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen))
2477
	n = uint32(r0)
2478
	if n == 0 {
2479
		err = errnoErr(e1)
2480
	}
2481
	return
2482
}
2483

2484
func getStartupInfo(startupInfo *StartupInfo) {
2485
	syscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0)
2486
	return
2487
}
2488

2489
func GetStdHandle(stdhandle uint32) (handle Handle, err error) {
2490
	r0, _, e1 := syscall.Syscall(procGetStdHandle.Addr(), 1, uintptr(stdhandle), 0, 0)
2491
	handle = Handle(r0)
2492
	if handle == InvalidHandle {
2493
		err = errnoErr(e1)
2494
	}
2495
	return
2496
}
2497

2498
func getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) {
2499
	r0, _, e1 := syscall.Syscall(procGetSystemDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0)
2500
	len = uint32(r0)
2501
	if len == 0 {
2502
		err = errnoErr(e1)
2503
	}
2504
	return
2505
}
2506

2507
func getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {
2508
	r1, _, e1 := syscall.Syscall6(procGetSystemPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0)
2509
	if r1 == 0 {
2510
		err = errnoErr(e1)
2511
	}
2512
	return
2513
}
2514

2515
func GetSystemTimeAsFileTime(time *Filetime) {
2516
	syscall.Syscall(procGetSystemTimeAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0)
2517
	return
2518
}
2519

2520
func GetSystemTimePreciseAsFileTime(time *Filetime) {
2521
	syscall.Syscall(procGetSystemTimePreciseAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0)
2522
	return
2523
}
2524

2525
func getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) {
2526
	r0, _, e1 := syscall.Syscall(procGetSystemWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0)
2527
	len = uint32(r0)
2528
	if len == 0 {
2529
		err = errnoErr(e1)
2530
	}
2531
	return
2532
}
2533

2534
func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) {
2535
	r0, _, e1 := syscall.Syscall(procGetTempPathW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0)
2536
	n = uint32(r0)
2537
	if n == 0 {
2538
		err = errnoErr(e1)
2539
	}
2540
	return
2541
}
2542

2543
func getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {
2544
	r1, _, e1 := syscall.Syscall6(procGetThreadPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0)
2545
	if r1 == 0 {
2546
		err = errnoErr(e1)
2547
	}
2548
	return
2549
}
2550

2551
func getTickCount64() (ms uint64) {
2552
	r0, _, _ := syscall.Syscall(procGetTickCount64.Addr(), 0, 0, 0, 0)
2553
	ms = uint64(r0)
2554
	return
2555
}
2556

2557
func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) {
2558
	r0, _, e1 := syscall.Syscall(procGetTimeZoneInformation.Addr(), 1, uintptr(unsafe.Pointer(tzi)), 0, 0)
2559
	rc = uint32(r0)
2560
	if rc == 0xffffffff {
2561
		err = errnoErr(e1)
2562
	}
2563
	return
2564
}
2565

2566
func getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {
2567
	r1, _, e1 := syscall.Syscall6(procGetUserPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0)
2568
	if r1 == 0 {
2569
		err = errnoErr(e1)
2570
	}
2571
	return
2572
}
2573

2574
func GetVersion() (ver uint32, err error) {
2575
	r0, _, e1 := syscall.Syscall(procGetVersion.Addr(), 0, 0, 0, 0)
2576
	ver = uint32(r0)
2577
	if ver == 0 {
2578
		err = errnoErr(e1)
2579
	}
2580
	return
2581
}
2582

2583
func GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) {
2584
	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)
2585
	if r1 == 0 {
2586
		err = errnoErr(e1)
2587
	}
2588
	return
2589
}
2590

2591
func GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) {
2592
	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)
2593
	if r1 == 0 {
2594
		err = errnoErr(e1)
2595
	}
2596
	return
2597
}
2598

2599
func GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) {
2600
	r1, _, e1 := syscall.Syscall(procGetVolumeNameForVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferlength))
2601
	if r1 == 0 {
2602
		err = errnoErr(e1)
2603
	}
2604
	return
2605
}
2606

2607
func GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) {
2608
	r1, _, e1 := syscall.Syscall(procGetVolumePathNameW.Addr(), 3, uintptr(unsafe.Pointer(fileName)), uintptr(unsafe.Pointer(volumePathName)), uintptr(bufferLength))
2609
	if r1 == 0 {
2610
		err = errnoErr(e1)
2611
	}
2612
	return
2613
}
2614

2615
func GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) {
2616
	r1, _, e1 := syscall.Syscall6(procGetVolumePathNamesForVolumeNameW.Addr(), 4, uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength)), 0, 0)
2617
	if r1 == 0 {
2618
		err = errnoErr(e1)
2619
	}
2620
	return
2621
}
2622

2623
func getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) {
2624
	r0, _, e1 := syscall.Syscall(procGetWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0)
2625
	len = uint32(r0)
2626
	if len == 0 {
2627
		err = errnoErr(e1)
2628
	}
2629
	return
2630
}
2631

2632
func initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) {
2633
	r1, _, e1 := syscall.Syscall6(procInitializeProcThreadAttributeList.Addr(), 4, uintptr(unsafe.Pointer(attrlist)), uintptr(attrcount), uintptr(flags), uintptr(unsafe.Pointer(size)), 0, 0)
2634
	if r1 == 0 {
2635
		err = errnoErr(e1)
2636
	}
2637
	return
2638
}
2639

2640
func IsWow64Process(handle Handle, isWow64 *bool) (err error) {
2641
	var _p0 uint32
2642
	if *isWow64 {
2643
		_p0 = 1
2644
	}
2645
	r1, _, e1 := syscall.Syscall(procIsWow64Process.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(&_p0)), 0)
2646
	*isWow64 = _p0 != 0
2647
	if r1 == 0 {
2648
		err = errnoErr(e1)
2649
	}
2650
	return
2651
}
2652

2653
func IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) {
2654
	err = procIsWow64Process2.Find()
2655
	if err != nil {
2656
		return
2657
	}
2658
	r1, _, e1 := syscall.Syscall(procIsWow64Process2.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(processMachine)), uintptr(unsafe.Pointer(nativeMachine)))
2659
	if r1 == 0 {
2660
		err = errnoErr(e1)
2661
	}
2662
	return
2663
}
2664

2665
func LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) {
2666
	var _p0 *uint16
2667
	_p0, err = syscall.UTF16PtrFromString(libname)
2668
	if err != nil {
2669
		return
2670
	}
2671
	return _LoadLibraryEx(_p0, zero, flags)
2672
}
2673

2674
func _LoadLibraryEx(libname *uint16, zero Handle, flags uintptr) (handle Handle, err error) {
2675
	r0, _, e1 := syscall.Syscall(procLoadLibraryExW.Addr(), 3, uintptr(unsafe.Pointer(libname)), uintptr(zero), uintptr(flags))
2676
	handle = Handle(r0)
2677
	if handle == 0 {
2678
		err = errnoErr(e1)
2679
	}
2680
	return
2681
}
2682

2683
func LoadLibrary(libname string) (handle Handle, err error) {
2684
	var _p0 *uint16
2685
	_p0, err = syscall.UTF16PtrFromString(libname)
2686
	if err != nil {
2687
		return
2688
	}
2689
	return _LoadLibrary(_p0)
2690
}
2691

2692
func _LoadLibrary(libname *uint16) (handle Handle, err error) {
2693
	r0, _, e1 := syscall.Syscall(procLoadLibraryW.Addr(), 1, uintptr(unsafe.Pointer(libname)), 0, 0)
2694
	handle = Handle(r0)
2695
	if handle == 0 {
2696
		err = errnoErr(e1)
2697
	}
2698
	return
2699
}
2700

2701
func LoadResource(module Handle, resInfo Handle) (resData Handle, err error) {
2702
	r0, _, e1 := syscall.Syscall(procLoadResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0)
2703
	resData = Handle(r0)
2704
	if resData == 0 {
2705
		err = errnoErr(e1)
2706
	}
2707
	return
2708
}
2709

2710
func LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) {
2711
	r0, _, e1 := syscall.Syscall(procLocalAlloc.Addr(), 2, uintptr(flags), uintptr(length), 0)
2712
	ptr = uintptr(r0)
2713
	if ptr == 0 {
2714
		err = errnoErr(e1)
2715
	}
2716
	return
2717
}
2718

2719
func LocalFree(hmem Handle) (handle Handle, err error) {
2720
	r0, _, e1 := syscall.Syscall(procLocalFree.Addr(), 1, uintptr(hmem), 0, 0)
2721
	handle = Handle(r0)
2722
	if handle != 0 {
2723
		err = errnoErr(e1)
2724
	}
2725
	return
2726
}
2727

2728
func LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) {
2729
	r1, _, e1 := syscall.Syscall6(procLockFileEx.Addr(), 6, uintptr(file), uintptr(flags), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)))
2730
	if r1 == 0 {
2731
		err = errnoErr(e1)
2732
	}
2733
	return
2734
}
2735

2736
func LockResource(resData Handle) (addr uintptr, err error) {
2737
	r0, _, e1 := syscall.Syscall(procLockResource.Addr(), 1, uintptr(resData), 0, 0)
2738
	addr = uintptr(r0)
2739
	if addr == 0 {
2740
		err = errnoErr(e1)
2741
	}
2742
	return
2743
}
2744

2745
func MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) {
2746
	r0, _, e1 := syscall.Syscall6(procMapViewOfFile.Addr(), 5, uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length), 0)
2747
	addr = uintptr(r0)
2748
	if addr == 0 {
2749
		err = errnoErr(e1)
2750
	}
2751
	return
2752
}
2753

2754
func Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) {
2755
	r1, _, e1 := syscall.Syscall(procModule32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0)
2756
	if r1 == 0 {
2757
		err = errnoErr(e1)
2758
	}
2759
	return
2760
}
2761

2762
func Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) {
2763
	r1, _, e1 := syscall.Syscall(procModule32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0)
2764
	if r1 == 0 {
2765
		err = errnoErr(e1)
2766
	}
2767
	return
2768
}
2769

2770
func MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) {
2771
	r1, _, e1 := syscall.Syscall(procMoveFileExW.Addr(), 3, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags))
2772
	if r1 == 0 {
2773
		err = errnoErr(e1)
2774
	}
2775
	return
2776
}
2777

2778
func MoveFile(from *uint16, to *uint16) (err error) {
2779
	r1, _, e1 := syscall.Syscall(procMoveFileW.Addr(), 2, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), 0)
2780
	if r1 == 0 {
2781
		err = errnoErr(e1)
2782
	}
2783
	return
2784
}
2785

2786
func MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) {
2787
	r0, _, e1 := syscall.Syscall6(procMultiByteToWideChar.Addr(), 6, uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar))
2788
	nwrite = int32(r0)
2789
	if nwrite == 0 {
2790
		err = errnoErr(e1)
2791
	}
2792
	return
2793
}
2794

2795
func OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) {
2796
	var _p0 uint32
2797
	if inheritHandle {
2798
		_p0 = 1
2799
	}
2800
	r0, _, e1 := syscall.Syscall(procOpenEventW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name)))
2801
	handle = Handle(r0)
2802
	if handle == 0 {
2803
		err = errnoErr(e1)
2804
	}
2805
	return
2806
}
2807

2808
func OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) {
2809
	var _p0 uint32
2810
	if inheritHandle {
2811
		_p0 = 1
2812
	}
2813
	r0, _, e1 := syscall.Syscall(procOpenMutexW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name)))
2814
	handle = Handle(r0)
2815
	if handle == 0 {
2816
		err = errnoErr(e1)
2817
	}
2818
	return
2819
}
2820

2821
func OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) {
2822
	var _p0 uint32
2823
	if inheritHandle {
2824
		_p0 = 1
2825
	}
2826
	r0, _, e1 := syscall.Syscall(procOpenProcess.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(processId))
2827
	handle = Handle(r0)
2828
	if handle == 0 {
2829
		err = errnoErr(e1)
2830
	}
2831
	return
2832
}
2833

2834
func OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) {
2835
	var _p0 uint32
2836
	if inheritHandle {
2837
		_p0 = 1
2838
	}
2839
	r0, _, e1 := syscall.Syscall(procOpenThread.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(threadId))
2840
	handle = Handle(r0)
2841
	if handle == 0 {
2842
		err = errnoErr(e1)
2843
	}
2844
	return
2845
}
2846

2847
func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error) {
2848
	r1, _, e1 := syscall.Syscall6(procPostQueuedCompletionStatus.Addr(), 4, uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped)), 0, 0)
2849
	if r1 == 0 {
2850
		err = errnoErr(e1)
2851
	}
2852
	return
2853
}
2854

2855
func Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) {
2856
	r1, _, e1 := syscall.Syscall(procProcess32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0)
2857
	if r1 == 0 {
2858
		err = errnoErr(e1)
2859
	}
2860
	return
2861
}
2862

2863
func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) {
2864
	r1, _, e1 := syscall.Syscall(procProcess32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0)
2865
	if r1 == 0 {
2866
		err = errnoErr(e1)
2867
	}
2868
	return
2869
}
2870

2871
func ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) {
2872
	r1, _, e1 := syscall.Syscall(procProcessIdToSessionId.Addr(), 2, uintptr(pid), uintptr(unsafe.Pointer(sessionid)), 0)
2873
	if r1 == 0 {
2874
		err = errnoErr(e1)
2875
	}
2876
	return
2877
}
2878

2879
func PulseEvent(event Handle) (err error) {
2880
	r1, _, e1 := syscall.Syscall(procPulseEvent.Addr(), 1, uintptr(event), 0, 0)
2881
	if r1 == 0 {
2882
		err = errnoErr(e1)
2883
	}
2884
	return
2885
}
2886

2887
func PurgeComm(handle Handle, dwFlags uint32) (err error) {
2888
	r1, _, e1 := syscall.Syscall(procPurgeComm.Addr(), 2, uintptr(handle), uintptr(dwFlags), 0)
2889
	if r1 == 0 {
2890
		err = errnoErr(e1)
2891
	}
2892
	return
2893
}
2894

2895
func QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) {
2896
	r0, _, e1 := syscall.Syscall(procQueryDosDeviceW.Addr(), 3, uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max))
2897
	n = uint32(r0)
2898
	if n == 0 {
2899
		err = errnoErr(e1)
2900
	}
2901
	return
2902
}
2903

2904
func QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) {
2905
	r1, _, e1 := syscall.Syscall6(procQueryFullProcessImageNameW.Addr(), 4, uintptr(proc), uintptr(flags), uintptr(unsafe.Pointer(exeName)), uintptr(unsafe.Pointer(size)), 0, 0)
2906
	if r1 == 0 {
2907
		err = errnoErr(e1)
2908
	}
2909
	return
2910
}
2911

2912
func QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) {
2913
	r1, _, e1 := syscall.Syscall6(procQueryInformationJobObject.Addr(), 5, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), uintptr(unsafe.Pointer(retlen)), 0)
2914
	if r1 == 0 {
2915
		err = errnoErr(e1)
2916
	}
2917
	return
2918
}
2919

2920
func ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) {
2921
	r1, _, e1 := syscall.Syscall6(procReadConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl)), 0)
2922
	if r1 == 0 {
2923
		err = errnoErr(e1)
2924
	}
2925
	return
2926
}
2927

2928
func ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) {
2929
	var _p0 uint32
2930
	if watchSubTree {
2931
		_p0 = 1
2932
	}
2933
	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)
2934
	if r1 == 0 {
2935
		err = errnoErr(e1)
2936
	}
2937
	return
2938
}
2939

2940
func readFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) {
2941
	var _p0 *byte
2942
	if len(buf) > 0 {
2943
		_p0 = &buf[0]
2944
	}
2945
	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)
2946
	if r1 == 0 {
2947
		err = errnoErr(e1)
2948
	}
2949
	return
2950
}
2951

2952
func ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) {
2953
	r1, _, e1 := syscall.Syscall6(procReadProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesRead)), 0)
2954
	if r1 == 0 {
2955
		err = errnoErr(e1)
2956
	}
2957
	return
2958
}
2959

2960
func ReleaseMutex(mutex Handle) (err error) {
2961
	r1, _, e1 := syscall.Syscall(procReleaseMutex.Addr(), 1, uintptr(mutex), 0, 0)
2962
	if r1 == 0 {
2963
		err = errnoErr(e1)
2964
	}
2965
	return
2966
}
2967

2968
func RemoveDirectory(path *uint16) (err error) {
2969
	r1, _, e1 := syscall.Syscall(procRemoveDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)
2970
	if r1 == 0 {
2971
		err = errnoErr(e1)
2972
	}
2973
	return
2974
}
2975

2976
func RemoveDllDirectory(cookie uintptr) (err error) {
2977
	r1, _, e1 := syscall.Syscall(procRemoveDllDirectory.Addr(), 1, uintptr(cookie), 0, 0)
2978
	if r1 == 0 {
2979
		err = errnoErr(e1)
2980
	}
2981
	return
2982
}
2983

2984
func ResetEvent(event Handle) (err error) {
2985
	r1, _, e1 := syscall.Syscall(procResetEvent.Addr(), 1, uintptr(event), 0, 0)
2986
	if r1 == 0 {
2987
		err = errnoErr(e1)
2988
	}
2989
	return
2990
}
2991

2992
func resizePseudoConsole(pconsole Handle, size uint32) (hr error) {
2993
	r0, _, _ := syscall.Syscall(procResizePseudoConsole.Addr(), 2, uintptr(pconsole), uintptr(size), 0)
2994
	if r0 != 0 {
2995
		hr = syscall.Errno(r0)
2996
	}
2997
	return
2998
}
2999

3000
func ResumeThread(thread Handle) (ret uint32, err error) {
3001
	r0, _, e1 := syscall.Syscall(procResumeThread.Addr(), 1, uintptr(thread), 0, 0)
3002
	ret = uint32(r0)
3003
	if ret == 0xffffffff {
3004
		err = errnoErr(e1)
3005
	}
3006
	return
3007
}
3008

3009
func SetCommBreak(handle Handle) (err error) {
3010
	r1, _, e1 := syscall.Syscall(procSetCommBreak.Addr(), 1, uintptr(handle), 0, 0)
3011
	if r1 == 0 {
3012
		err = errnoErr(e1)
3013
	}
3014
	return
3015
}
3016

3017
func SetCommMask(handle Handle, dwEvtMask uint32) (err error) {
3018
	r1, _, e1 := syscall.Syscall(procSetCommMask.Addr(), 2, uintptr(handle), uintptr(dwEvtMask), 0)
3019
	if r1 == 0 {
3020
		err = errnoErr(e1)
3021
	}
3022
	return
3023
}
3024

3025
func SetCommState(handle Handle, lpDCB *DCB) (err error) {
3026
	r1, _, e1 := syscall.Syscall(procSetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0)
3027
	if r1 == 0 {
3028
		err = errnoErr(e1)
3029
	}
3030
	return
3031
}
3032

3033
func SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) {
3034
	r1, _, e1 := syscall.Syscall(procSetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0)
3035
	if r1 == 0 {
3036
		err = errnoErr(e1)
3037
	}
3038
	return
3039
}
3040

3041
func setConsoleCursorPosition(console Handle, position uint32) (err error) {
3042
	r1, _, e1 := syscall.Syscall(procSetConsoleCursorPosition.Addr(), 2, uintptr(console), uintptr(position), 0)
3043
	if r1 == 0 {
3044
		err = errnoErr(e1)
3045
	}
3046
	return
3047
}
3048

3049
func SetConsoleMode(console Handle, mode uint32) (err error) {
3050
	r1, _, e1 := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(console), uintptr(mode), 0)
3051
	if r1 == 0 {
3052
		err = errnoErr(e1)
3053
	}
3054
	return
3055
}
3056

3057
func SetCurrentDirectory(path *uint16) (err error) {
3058
	r1, _, e1 := syscall.Syscall(procSetCurrentDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)
3059
	if r1 == 0 {
3060
		err = errnoErr(e1)
3061
	}
3062
	return
3063
}
3064

3065
func SetDefaultDllDirectories(directoryFlags uint32) (err error) {
3066
	r1, _, e1 := syscall.Syscall(procSetDefaultDllDirectories.Addr(), 1, uintptr(directoryFlags), 0, 0)
3067
	if r1 == 0 {
3068
		err = errnoErr(e1)
3069
	}
3070
	return
3071
}
3072

3073
func SetDllDirectory(path string) (err error) {
3074
	var _p0 *uint16
3075
	_p0, err = syscall.UTF16PtrFromString(path)
3076
	if err != nil {
3077
		return
3078
	}
3079
	return _SetDllDirectory(_p0)
3080
}
3081

3082
func _SetDllDirectory(path *uint16) (err error) {
3083
	r1, _, e1 := syscall.Syscall(procSetDllDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)
3084
	if r1 == 0 {
3085
		err = errnoErr(e1)
3086
	}
3087
	return
3088
}
3089

3090
func SetEndOfFile(handle Handle) (err error) {
3091
	r1, _, e1 := syscall.Syscall(procSetEndOfFile.Addr(), 1, uintptr(handle), 0, 0)
3092
	if r1 == 0 {
3093
		err = errnoErr(e1)
3094
	}
3095
	return
3096
}
3097

3098
func SetEnvironmentVariable(name *uint16, value *uint16) (err error) {
3099
	r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0)
3100
	if r1 == 0 {
3101
		err = errnoErr(e1)
3102
	}
3103
	return
3104
}
3105

3106
func SetErrorMode(mode uint32) (ret uint32) {
3107
	r0, _, _ := syscall.Syscall(procSetErrorMode.Addr(), 1, uintptr(mode), 0, 0)
3108
	ret = uint32(r0)
3109
	return
3110
}
3111

3112
func SetEvent(event Handle) (err error) {
3113
	r1, _, e1 := syscall.Syscall(procSetEvent.Addr(), 1, uintptr(event), 0, 0)
3114
	if r1 == 0 {
3115
		err = errnoErr(e1)
3116
	}
3117
	return
3118
}
3119

3120
func SetFileAttributes(name *uint16, attrs uint32) (err error) {
3121
	r1, _, e1 := syscall.Syscall(procSetFileAttributesW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(attrs), 0)
3122
	if r1 == 0 {
3123
		err = errnoErr(e1)
3124
	}
3125
	return
3126
}
3127

3128
func SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) {
3129
	r1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(handle), uintptr(flags), 0)
3130
	if r1 == 0 {
3131
		err = errnoErr(e1)
3132
	}
3133
	return
3134
}
3135

3136
func SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error) {
3137
	r1, _, e1 := syscall.Syscall6(procSetFileInformationByHandle.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), 0, 0)
3138
	if r1 == 0 {
3139
		err = errnoErr(e1)
3140
	}
3141
	return
3142
}
3143

3144
func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) {
3145
	r0, _, e1 := syscall.Syscall6(procSetFilePointer.Addr(), 4, uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence), 0, 0)
3146
	newlowoffset = uint32(r0)
3147
	if newlowoffset == 0xffffffff {
3148
		err = errnoErr(e1)
3149
	}
3150
	return
3151
}
3152

3153
func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) {
3154
	r1, _, e1 := syscall.Syscall6(procSetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0)
3155
	if r1 == 0 {
3156
		err = errnoErr(e1)
3157
	}
3158
	return
3159
}
3160

3161
func SetFileValidData(handle Handle, validDataLength int64) (err error) {
3162
	r1, _, e1 := syscall.Syscall(procSetFileValidData.Addr(), 2, uintptr(handle), uintptr(validDataLength), 0)
3163
	if r1 == 0 {
3164
		err = errnoErr(e1)
3165
	}
3166
	return
3167
}
3168

3169
func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) {
3170
	r1, _, e1 := syscall.Syscall(procSetHandleInformation.Addr(), 3, uintptr(handle), uintptr(mask), uintptr(flags))
3171
	if r1 == 0 {
3172
		err = errnoErr(e1)
3173
	}
3174
	return
3175
}
3176

3177
func SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) {
3178
	r0, _, e1 := syscall.Syscall6(procSetInformationJobObject.Addr(), 4, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), 0, 0)
3179
	ret = int(r0)
3180
	if ret == 0 {
3181
		err = errnoErr(e1)
3182
	}
3183
	return
3184
}
3185

3186
func SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) {
3187
	r1, _, e1 := syscall.Syscall6(procSetNamedPipeHandleState.Addr(), 4, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), 0, 0)
3188
	if r1 == 0 {
3189
		err = errnoErr(e1)
3190
	}
3191
	return
3192
}
3193

3194
func SetPriorityClass(process Handle, priorityClass uint32) (err error) {
3195
	r1, _, e1 := syscall.Syscall(procSetPriorityClass.Addr(), 2, uintptr(process), uintptr(priorityClass), 0)
3196
	if r1 == 0 {
3197
		err = errnoErr(e1)
3198
	}
3199
	return
3200
}
3201

3202
func SetProcessPriorityBoost(process Handle, disable bool) (err error) {
3203
	var _p0 uint32
3204
	if disable {
3205
		_p0 = 1
3206
	}
3207
	r1, _, e1 := syscall.Syscall(procSetProcessPriorityBoost.Addr(), 2, uintptr(process), uintptr(_p0), 0)
3208
	if r1 == 0 {
3209
		err = errnoErr(e1)
3210
	}
3211
	return
3212
}
3213

3214
func SetProcessShutdownParameters(level uint32, flags uint32) (err error) {
3215
	r1, _, e1 := syscall.Syscall(procSetProcessShutdownParameters.Addr(), 2, uintptr(level), uintptr(flags), 0)
3216
	if r1 == 0 {
3217
		err = errnoErr(e1)
3218
	}
3219
	return
3220
}
3221

3222
func SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) {
3223
	r1, _, e1 := syscall.Syscall6(procSetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(dwMinimumWorkingSetSize), uintptr(dwMaximumWorkingSetSize), uintptr(flags), 0, 0)
3224
	if r1 == 0 {
3225
		err = errnoErr(e1)
3226
	}
3227
	return
3228
}
3229

3230
func SetStdHandle(stdhandle uint32, handle Handle) (err error) {
3231
	r1, _, e1 := syscall.Syscall(procSetStdHandle.Addr(), 2, uintptr(stdhandle), uintptr(handle), 0)
3232
	if r1 == 0 {
3233
		err = errnoErr(e1)
3234
	}
3235
	return
3236
}
3237

3238
func SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) {
3239
	r1, _, e1 := syscall.Syscall(procSetVolumeLabelW.Addr(), 2, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName)), 0)
3240
	if r1 == 0 {
3241
		err = errnoErr(e1)
3242
	}
3243
	return
3244
}
3245

3246
func SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) {
3247
	r1, _, e1 := syscall.Syscall(procSetVolumeMountPointW.Addr(), 2, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), 0)
3248
	if r1 == 0 {
3249
		err = errnoErr(e1)
3250
	}
3251
	return
3252
}
3253

3254
func SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) {
3255
	r1, _, e1 := syscall.Syscall(procSetupComm.Addr(), 3, uintptr(handle), uintptr(dwInQueue), uintptr(dwOutQueue))
3256
	if r1 == 0 {
3257
		err = errnoErr(e1)
3258
	}
3259
	return
3260
}
3261

3262
func SizeofResource(module Handle, resInfo Handle) (size uint32, err error) {
3263
	r0, _, e1 := syscall.Syscall(procSizeofResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0)
3264
	size = uint32(r0)
3265
	if size == 0 {
3266
		err = errnoErr(e1)
3267
	}
3268
	return
3269
}
3270

3271
func SleepEx(milliseconds uint32, alertable bool) (ret uint32) {
3272
	var _p0 uint32
3273
	if alertable {
3274
		_p0 = 1
3275
	}
3276
	r0, _, _ := syscall.Syscall(procSleepEx.Addr(), 2, uintptr(milliseconds), uintptr(_p0), 0)
3277
	ret = uint32(r0)
3278
	return
3279
}
3280

3281
func TerminateJobObject(job Handle, exitCode uint32) (err error) {
3282
	r1, _, e1 := syscall.Syscall(procTerminateJobObject.Addr(), 2, uintptr(job), uintptr(exitCode), 0)
3283
	if r1 == 0 {
3284
		err = errnoErr(e1)
3285
	}
3286
	return
3287
}
3288

3289
func TerminateProcess(handle Handle, exitcode uint32) (err error) {
3290
	r1, _, e1 := syscall.Syscall(procTerminateProcess.Addr(), 2, uintptr(handle), uintptr(exitcode), 0)
3291
	if r1 == 0 {
3292
		err = errnoErr(e1)
3293
	}
3294
	return
3295
}
3296

3297
func Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) {
3298
	r1, _, e1 := syscall.Syscall(procThread32First.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0)
3299
	if r1 == 0 {
3300
		err = errnoErr(e1)
3301
	}
3302
	return
3303
}
3304

3305
func Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) {
3306
	r1, _, e1 := syscall.Syscall(procThread32Next.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0)
3307
	if r1 == 0 {
3308
		err = errnoErr(e1)
3309
	}
3310
	return
3311
}
3312

3313
func UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) {
3314
	r1, _, e1 := syscall.Syscall6(procUnlockFileEx.Addr(), 5, uintptr(file), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)), 0)
3315
	if r1 == 0 {
3316
		err = errnoErr(e1)
3317
	}
3318
	return
3319
}
3320

3321
func UnmapViewOfFile(addr uintptr) (err error) {
3322
	r1, _, e1 := syscall.Syscall(procUnmapViewOfFile.Addr(), 1, uintptr(addr), 0, 0)
3323
	if r1 == 0 {
3324
		err = errnoErr(e1)
3325
	}
3326
	return
3327
}
3328

3329
func updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) {
3330
	r1, _, e1 := syscall.Syscall9(procUpdateProcThreadAttribute.Addr(), 7, uintptr(unsafe.Pointer(attrlist)), uintptr(flags), uintptr(attr), uintptr(value), uintptr(size), uintptr(prevvalue), uintptr(unsafe.Pointer(returnedsize)), 0, 0)
3331
	if r1 == 0 {
3332
		err = errnoErr(e1)
3333
	}
3334
	return
3335
}
3336

3337
func VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) {
3338
	r0, _, e1 := syscall.Syscall6(procVirtualAlloc.Addr(), 4, uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect), 0, 0)
3339
	value = uintptr(r0)
3340
	if value == 0 {
3341
		err = errnoErr(e1)
3342
	}
3343
	return
3344
}
3345

3346
func VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) {
3347
	r1, _, e1 := syscall.Syscall(procVirtualFree.Addr(), 3, uintptr(address), uintptr(size), uintptr(freetype))
3348
	if r1 == 0 {
3349
		err = errnoErr(e1)
3350
	}
3351
	return
3352
}
3353

3354
func VirtualLock(addr uintptr, length uintptr) (err error) {
3355
	r1, _, e1 := syscall.Syscall(procVirtualLock.Addr(), 2, uintptr(addr), uintptr(length), 0)
3356
	if r1 == 0 {
3357
		err = errnoErr(e1)
3358
	}
3359
	return
3360
}
3361

3362
func VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) {
3363
	r1, _, e1 := syscall.Syscall6(procVirtualProtect.Addr(), 4, uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect)), 0, 0)
3364
	if r1 == 0 {
3365
		err = errnoErr(e1)
3366
	}
3367
	return
3368
}
3369

3370
func VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) {
3371
	r1, _, e1 := syscall.Syscall6(procVirtualProtectEx.Addr(), 5, uintptr(process), uintptr(address), uintptr(size), uintptr(newProtect), uintptr(unsafe.Pointer(oldProtect)), 0)
3372
	if r1 == 0 {
3373
		err = errnoErr(e1)
3374
	}
3375
	return
3376
}
3377

3378
func VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) {
3379
	r1, _, e1 := syscall.Syscall(procVirtualQuery.Addr(), 3, uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length))
3380
	if r1 == 0 {
3381
		err = errnoErr(e1)
3382
	}
3383
	return
3384
}
3385

3386
func VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) {
3387
	r1, _, e1 := syscall.Syscall6(procVirtualQueryEx.Addr(), 4, uintptr(process), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length), 0, 0)
3388
	if r1 == 0 {
3389
		err = errnoErr(e1)
3390
	}
3391
	return
3392
}
3393

3394
func VirtualUnlock(addr uintptr, length uintptr) (err error) {
3395
	r1, _, e1 := syscall.Syscall(procVirtualUnlock.Addr(), 2, uintptr(addr), uintptr(length), 0)
3396
	if r1 == 0 {
3397
		err = errnoErr(e1)
3398
	}
3399
	return
3400
}
3401

3402
func WTSGetActiveConsoleSessionId() (sessionID uint32) {
3403
	r0, _, _ := syscall.Syscall(procWTSGetActiveConsoleSessionId.Addr(), 0, 0, 0, 0)
3404
	sessionID = uint32(r0)
3405
	return
3406
}
3407

3408
func WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) {
3409
	r1, _, e1 := syscall.Syscall(procWaitCommEvent.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpEvtMask)), uintptr(unsafe.Pointer(lpOverlapped)))
3410
	if r1 == 0 {
3411
		err = errnoErr(e1)
3412
	}
3413
	return
3414
}
3415

3416
func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) {
3417
	var _p0 uint32
3418
	if waitAll {
3419
		_p0 = 1
3420
	}
3421
	r0, _, e1 := syscall.Syscall6(procWaitForMultipleObjects.Addr(), 4, uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds), 0, 0)
3422
	event = uint32(r0)
3423
	if event == 0xffffffff {
3424
		err = errnoErr(e1)
3425
	}
3426
	return
3427
}
3428

3429
func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) {
3430
	r0, _, e1 := syscall.Syscall(procWaitForSingleObject.Addr(), 2, uintptr(handle), uintptr(waitMilliseconds), 0)
3431
	event = uint32(r0)
3432
	if event == 0xffffffff {
3433
		err = errnoErr(e1)
3434
	}
3435
	return
3436
}
3437

3438
func WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) {
3439
	r1, _, e1 := syscall.Syscall6(procWriteConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)), 0)
3440
	if r1 == 0 {
3441
		err = errnoErr(e1)
3442
	}
3443
	return
3444
}
3445

3446
func writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) {
3447
	var _p0 *byte
3448
	if len(buf) > 0 {
3449
		_p0 = &buf[0]
3450
	}
3451
	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)
3452
	if r1 == 0 {
3453
		err = errnoErr(e1)
3454
	}
3455
	return
3456
}
3457

3458
func WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) {
3459
	r1, _, e1 := syscall.Syscall6(procWriteProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesWritten)), 0)
3460
	if r1 == 0 {
3461
		err = errnoErr(e1)
3462
	}
3463
	return
3464
}
3465

3466
func AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) {
3467
	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)
3468
	if r1 == 0 {
3469
		err = errnoErr(e1)
3470
	}
3471
	return
3472
}
3473

3474
func GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) {
3475
	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)
3476
	return
3477
}
3478

3479
func TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) {
3480
	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)
3481
	if r1 == 0 {
3482
		err = errnoErr(e1)
3483
	}
3484
	return
3485
}
3486

3487
func NetApiBufferFree(buf *byte) (neterr error) {
3488
	r0, _, _ := syscall.Syscall(procNetApiBufferFree.Addr(), 1, uintptr(unsafe.Pointer(buf)), 0, 0)
3489
	if r0 != 0 {
3490
		neterr = syscall.Errno(r0)
3491
	}
3492
	return
3493
}
3494

3495
func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) {
3496
	r0, _, _ := syscall.Syscall(procNetGetJoinInformation.Addr(), 3, uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType)))
3497
	if r0 != 0 {
3498
		neterr = syscall.Errno(r0)
3499
	}
3500
	return
3501
}
3502

3503
func NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) {
3504
	r0, _, _ := syscall.Syscall9(procNetUserEnum.Addr(), 8, uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(filter), uintptr(unsafe.Pointer(buf)), uintptr(prefMaxLen), uintptr(unsafe.Pointer(entriesRead)), uintptr(unsafe.Pointer(totalEntries)), uintptr(unsafe.Pointer(resumeHandle)), 0)
3505
	if r0 != 0 {
3506
		neterr = syscall.Errno(r0)
3507
	}
3508
	return
3509
}
3510

3511
func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) {
3512
	r0, _, _ := syscall.Syscall6(procNetUserGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)), 0, 0)
3513
	if r0 != 0 {
3514
		neterr = syscall.Errno(r0)
3515
	}
3516
	return
3517
}
3518

3519
func NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) {
3520
	r0, _, _ := syscall.Syscall12(procNtCreateFile.Addr(), 11, uintptr(unsafe.Pointer(handle)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(allocationSize)), uintptr(attributes), uintptr(share), uintptr(disposition), uintptr(options), uintptr(eabuffer), uintptr(ealength), 0)
3521
	if r0 != 0 {
3522
		ntstatus = NTStatus(r0)
3523
	}
3524
	return
3525
}
3526

3527
func NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) {
3528
	r0, _, _ := syscall.Syscall15(procNtCreateNamedPipeFile.Addr(), 14, uintptr(unsafe.Pointer(pipe)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(share), uintptr(disposition), uintptr(options), uintptr(typ), uintptr(readMode), uintptr(completionMode), uintptr(maxInstances), uintptr(inboundQuota), uintptr(outputQuota), uintptr(unsafe.Pointer(timeout)), 0)
3529
	if r0 != 0 {
3530
		ntstatus = NTStatus(r0)
3531
	}
3532
	return
3533
}
3534

3535
func NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) {
3536
	r0, _, _ := syscall.Syscall6(procNtQueryInformationProcess.Addr(), 5, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), uintptr(unsafe.Pointer(retLen)), 0)
3537
	if r0 != 0 {
3538
		ntstatus = NTStatus(r0)
3539
	}
3540
	return
3541
}
3542

3543
func NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) {
3544
	r0, _, _ := syscall.Syscall6(procNtQuerySystemInformation.Addr(), 4, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen), uintptr(unsafe.Pointer(retLen)), 0, 0)
3545
	if r0 != 0 {
3546
		ntstatus = NTStatus(r0)
3547
	}
3548
	return
3549
}
3550

3551
func NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) {
3552
	r0, _, _ := syscall.Syscall6(procNtSetInformationFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), uintptr(class), 0)
3553
	if r0 != 0 {
3554
		ntstatus = NTStatus(r0)
3555
	}
3556
	return
3557
}
3558

3559
func NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) {
3560
	r0, _, _ := syscall.Syscall6(procNtSetInformationProcess.Addr(), 4, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), 0, 0)
3561
	if r0 != 0 {
3562
		ntstatus = NTStatus(r0)
3563
	}
3564
	return
3565
}
3566

3567
func NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) {
3568
	r0, _, _ := syscall.Syscall(procNtSetSystemInformation.Addr(), 3, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen))
3569
	if r0 != 0 {
3570
		ntstatus = NTStatus(r0)
3571
	}
3572
	return
3573
}
3574

3575
func RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) {
3576
	r0, _, _ := syscall.Syscall(procRtlAddFunctionTable.Addr(), 3, uintptr(unsafe.Pointer(functionTable)), uintptr(entryCount), uintptr(baseAddress))
3577
	ret = r0 != 0
3578
	return
3579
}
3580

3581
func RtlDefaultNpAcl(acl **ACL) (ntstatus error) {
3582
	r0, _, _ := syscall.Syscall(procRtlDefaultNpAcl.Addr(), 1, uintptr(unsafe.Pointer(acl)), 0, 0)
3583
	if r0 != 0 {
3584
		ntstatus = NTStatus(r0)
3585
	}
3586
	return
3587
}
3588

3589
func RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) {
3590
	r0, _, _ := syscall.Syscall(procRtlDeleteFunctionTable.Addr(), 1, uintptr(unsafe.Pointer(functionTable)), 0, 0)
3591
	ret = r0 != 0
3592
	return
3593
}
3594

3595
func RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) {
3596
	r0, _, _ := syscall.Syscall6(procRtlDosPathNameToNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0)
3597
	if r0 != 0 {
3598
		ntstatus = NTStatus(r0)
3599
	}
3600
	return
3601
}
3602

3603
func RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) {
3604
	r0, _, _ := syscall.Syscall6(procRtlDosPathNameToRelativeNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0)
3605
	if r0 != 0 {
3606
		ntstatus = NTStatus(r0)
3607
	}
3608
	return
3609
}
3610

3611
func RtlGetCurrentPeb() (peb *PEB) {
3612
	r0, _, _ := syscall.Syscall(procRtlGetCurrentPeb.Addr(), 0, 0, 0, 0)
3613
	peb = (*PEB)(unsafe.Pointer(r0))
3614
	return
3615
}
3616

3617
func rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) {
3618
	syscall.Syscall(procRtlGetNtVersionNumbers.Addr(), 3, uintptr(unsafe.Pointer(majorVersion)), uintptr(unsafe.Pointer(minorVersion)), uintptr(unsafe.Pointer(buildNumber)))
3619
	return
3620
}
3621

3622
func rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) {
3623
	r0, _, _ := syscall.Syscall(procRtlGetVersion.Addr(), 1, uintptr(unsafe.Pointer(info)), 0, 0)
3624
	if r0 != 0 {
3625
		ntstatus = NTStatus(r0)
3626
	}
3627
	return
3628
}
3629

3630
func RtlInitString(destinationString *NTString, sourceString *byte) {
3631
	syscall.Syscall(procRtlInitString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0)
3632
	return
3633
}
3634

3635
func RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) {
3636
	syscall.Syscall(procRtlInitUnicodeString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0)
3637
	return
3638
}
3639

3640
func rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) {
3641
	r0, _, _ := syscall.Syscall(procRtlNtStatusToDosErrorNoTeb.Addr(), 1, uintptr(ntstatus), 0, 0)
3642
	ret = syscall.Errno(r0)
3643
	return
3644
}
3645

3646
func clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) {
3647
	r0, _, _ := syscall.Syscall(procCLSIDFromString.Addr(), 2, uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid)), 0)
3648
	if r0 != 0 {
3649
		ret = syscall.Errno(r0)
3650
	}
3651
	return
3652
}
3653

3654
func coCreateGuid(pguid *GUID) (ret error) {
3655
	r0, _, _ := syscall.Syscall(procCoCreateGuid.Addr(), 1, uintptr(unsafe.Pointer(pguid)), 0, 0)
3656
	if r0 != 0 {
3657
		ret = syscall.Errno(r0)
3658
	}
3659
	return
3660
}
3661

3662
func CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) {
3663
	r0, _, _ := syscall.Syscall6(procCoGetObject.Addr(), 4, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bindOpts)), uintptr(unsafe.Pointer(guid)), uintptr(unsafe.Pointer(functionTable)), 0, 0)
3664
	if r0 != 0 {
3665
		ret = syscall.Errno(r0)
3666
	}
3667
	return
3668
}
3669

3670
func CoInitializeEx(reserved uintptr, coInit uint32) (ret error) {
3671
	r0, _, _ := syscall.Syscall(procCoInitializeEx.Addr(), 2, uintptr(reserved), uintptr(coInit), 0)
3672
	if r0 != 0 {
3673
		ret = syscall.Errno(r0)
3674
	}
3675
	return
3676
}
3677

3678
func CoTaskMemFree(address unsafe.Pointer) {
3679
	syscall.Syscall(procCoTaskMemFree.Addr(), 1, uintptr(address), 0, 0)
3680
	return
3681
}
3682

3683
func CoUninitialize() {
3684
	syscall.Syscall(procCoUninitialize.Addr(), 0, 0, 0, 0)
3685
	return
3686
}
3687

3688
func stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) {
3689
	r0, _, _ := syscall.Syscall(procStringFromGUID2.Addr(), 3, uintptr(unsafe.Pointer(rguid)), uintptr(unsafe.Pointer(lpsz)), uintptr(cchMax))
3690
	chars = int32(r0)
3691
	return
3692
}
3693

3694
func EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) {
3695
	r1, _, e1 := syscall.Syscall6(procEnumProcessModules.Addr(), 4, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), 0, 0)
3696
	if r1 == 0 {
3697
		err = errnoErr(e1)
3698
	}
3699
	return
3700
}
3701

3702
func EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) {
3703
	r1, _, e1 := syscall.Syscall6(procEnumProcessModulesEx.Addr(), 5, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), uintptr(filterFlag), 0)
3704
	if r1 == 0 {
3705
		err = errnoErr(e1)
3706
	}
3707
	return
3708
}
3709

3710
func enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) {
3711
	r1, _, e1 := syscall.Syscall(procEnumProcesses.Addr(), 3, uintptr(unsafe.Pointer(processIds)), uintptr(nSize), uintptr(unsafe.Pointer(bytesReturned)))
3712
	if r1 == 0 {
3713
		err = errnoErr(e1)
3714
	}
3715
	return
3716
}
3717

3718
func GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) {
3719
	r1, _, e1 := syscall.Syscall6(procGetModuleBaseNameW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(baseName)), uintptr(size), 0, 0)
3720
	if r1 == 0 {
3721
		err = errnoErr(e1)
3722
	}
3723
	return
3724
}
3725

3726
func GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) {
3727
	r1, _, e1 := syscall.Syscall6(procGetModuleFileNameExW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size), 0, 0)
3728
	if r1 == 0 {
3729
		err = errnoErr(e1)
3730
	}
3731
	return
3732
}
3733

3734
func GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) {
3735
	r1, _, e1 := syscall.Syscall6(procGetModuleInformation.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(modinfo)), uintptr(cb), 0, 0)
3736
	if r1 == 0 {
3737
		err = errnoErr(e1)
3738
	}
3739
	return
3740
}
3741

3742
func QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) {
3743
	r1, _, e1 := syscall.Syscall(procQueryWorkingSetEx.Addr(), 3, uintptr(process), uintptr(pv), uintptr(cb))
3744
	if r1 == 0 {
3745
		err = errnoErr(e1)
3746
	}
3747
	return
3748
}
3749

3750
func SubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) {
3751
	ret = procSubscribeServiceChangeNotifications.Find()
3752
	if ret != nil {
3753
		return
3754
	}
3755
	r0, _, _ := syscall.Syscall6(procSubscribeServiceChangeNotifications.Addr(), 5, uintptr(service), uintptr(eventType), uintptr(callback), uintptr(callbackCtx), uintptr(unsafe.Pointer(subscription)), 0)
3756
	if r0 != 0 {
3757
		ret = syscall.Errno(r0)
3758
	}
3759
	return
3760
}
3761

3762
func UnsubscribeServiceChangeNotifications(subscription uintptr) (err error) {
3763
	err = procUnsubscribeServiceChangeNotifications.Find()
3764
	if err != nil {
3765
		return
3766
	}
3767
	syscall.Syscall(procUnsubscribeServiceChangeNotifications.Addr(), 1, uintptr(subscription), 0, 0)
3768
	return
3769
}
3770

3771
func GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) {
3772
	r1, _, e1 := syscall.Syscall(procGetUserNameExW.Addr(), 3, uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize)))
3773
	if r1&0xff == 0 {
3774
		err = errnoErr(e1)
3775
	}
3776
	return
3777
}
3778

3779
func TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) {
3780
	r1, _, e1 := syscall.Syscall6(procTranslateNameW.Addr(), 5, uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize)), 0)
3781
	if r1&0xff == 0 {
3782
		err = errnoErr(e1)
3783
	}
3784
	return
3785
}
3786

3787
func SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) {
3788
	r1, _, e1 := syscall.Syscall(procSetupDiBuildDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType))
3789
	if r1 == 0 {
3790
		err = errnoErr(e1)
3791
	}
3792
	return
3793
}
3794

3795
func SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) {
3796
	r1, _, e1 := syscall.Syscall(procSetupDiCallClassInstaller.Addr(), 3, uintptr(installFunction), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)))
3797
	if r1 == 0 {
3798
		err = errnoErr(e1)
3799
	}
3800
	return
3801
}
3802

3803
func SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) {
3804
	r1, _, e1 := syscall.Syscall(procSetupDiCancelDriverInfoSearch.Addr(), 1, uintptr(deviceInfoSet), 0, 0)
3805
	if r1 == 0 {
3806
		err = errnoErr(e1)
3807
	}
3808
	return
3809
}
3810

3811
func setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) {
3812
	r1, _, e1 := syscall.Syscall6(procSetupDiClassGuidsFromNameExW.Addr(), 6, uintptr(unsafe.Pointer(className)), uintptr(unsafe.Pointer(classGuidList)), uintptr(classGuidListSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved))
3813
	if r1 == 0 {
3814
		err = errnoErr(e1)
3815
	}
3816
	return
3817
}
3818

3819
func setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) {
3820
	r1, _, e1 := syscall.Syscall6(procSetupDiClassNameFromGuidExW.Addr(), 6, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(className)), uintptr(classNameSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved))
3821
	if r1 == 0 {
3822
		err = errnoErr(e1)
3823
	}
3824
	return
3825
}
3826

3827
func setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) {
3828
	r0, _, e1 := syscall.Syscall6(procSetupDiCreateDeviceInfoListExW.Addr(), 4, uintptr(unsafe.Pointer(classGUID)), uintptr(hwndParent), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0)
3829
	handle = DevInfo(r0)
3830
	if handle == DevInfo(InvalidHandle) {
3831
		err = errnoErr(e1)
3832
	}
3833
	return
3834
}
3835

3836
func setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) {
3837
	r1, _, e1 := syscall.Syscall9(procSetupDiCreateDeviceInfoW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(DeviceName)), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(DeviceDescription)), uintptr(hwndParent), uintptr(CreationFlags), uintptr(unsafe.Pointer(deviceInfoData)), 0, 0)
3838
	if r1 == 0 {
3839
		err = errnoErr(e1)
3840
	}
3841
	return
3842
}
3843

3844
func SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) {
3845
	r1, _, e1 := syscall.Syscall(procSetupDiDestroyDeviceInfoList.Addr(), 1, uintptr(deviceInfoSet), 0, 0)
3846
	if r1 == 0 {
3847
		err = errnoErr(e1)
3848
	}
3849
	return
3850
}
3851

3852
func SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) {
3853
	r1, _, e1 := syscall.Syscall(procSetupDiDestroyDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType))
3854
	if r1 == 0 {
3855
		err = errnoErr(e1)
3856
	}
3857
	return
3858
}
3859

3860
func setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) {
3861
	r1, _, e1 := syscall.Syscall(procSetupDiEnumDeviceInfo.Addr(), 3, uintptr(deviceInfoSet), uintptr(memberIndex), uintptr(unsafe.Pointer(deviceInfoData)))
3862
	if r1 == 0 {
3863
		err = errnoErr(e1)
3864
	}
3865
	return
3866
}
3867

3868
func setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) {
3869
	r1, _, e1 := syscall.Syscall6(procSetupDiEnumDriverInfoW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType), uintptr(memberIndex), uintptr(unsafe.Pointer(driverInfoData)), 0)
3870
	if r1 == 0 {
3871
		err = errnoErr(e1)
3872
	}
3873
	return
3874
}
3875

3876
func setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) {
3877
	r0, _, e1 := syscall.Syscall9(procSetupDiGetClassDevsExW.Addr(), 7, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(Enumerator)), uintptr(hwndParent), uintptr(Flags), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0)
3878
	handle = DevInfo(r0)
3879
	if handle == DevInfo(InvalidHandle) {
3880
		err = errnoErr(e1)
3881
	}
3882
	return
3883
}
3884

3885
func SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) {
3886
	r1, _, e1 := syscall.Syscall6(procSetupDiGetClassInstallParamsW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), uintptr(unsafe.Pointer(requiredSize)), 0)
3887
	if r1 == 0 {
3888
		err = errnoErr(e1)
3889
	}
3890
	return
3891
}
3892

3893
func setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) {
3894
	r1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInfoListDetailW.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoSetDetailData)), 0)
3895
	if r1 == 0 {
3896
		err = errnoErr(e1)
3897
	}
3898
	return
3899
}
3900

3901
func setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) {
3902
	r1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams)))
3903
	if r1 == 0 {
3904
		err = errnoErr(e1)
3905
	}
3906
	return
3907
}
3908

3909
func setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) {
3910
	r1, _, e1 := syscall.Syscall6(procSetupDiGetDeviceInstanceIdW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(instanceId)), uintptr(instanceIdSize), uintptr(unsafe.Pointer(instanceIdRequiredSize)), 0)
3911
	if r1 == 0 {
3912
		err = errnoErr(e1)
3913
	}
3914
	return
3915
}
3916

3917
func setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) {
3918
	r1, _, e1 := syscall.Syscall9(procSetupDiGetDevicePropertyW.Addr(), 8, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(flags), 0)
3919
	if r1 == 0 {
3920
		err = errnoErr(e1)
3921
	}
3922
	return
3923
}
3924

3925
func setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) {
3926
	r1, _, e1 := syscall.Syscall9(procSetupDiGetDeviceRegistryPropertyW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyRegDataType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), 0, 0)
3927
	if r1 == 0 {
3928
		err = errnoErr(e1)
3929
	}
3930
	return
3931
}
3932

3933
func setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) {
3934
	r1, _, e1 := syscall.Syscall6(procSetupDiGetDriverInfoDetailW.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)), uintptr(unsafe.Pointer(driverInfoDetailData)), uintptr(driverInfoDetailDataSize), uintptr(unsafe.Pointer(requiredSize)))
3935
	if r1 == 0 {
3936
		err = errnoErr(e1)
3937
	}
3938
	return
3939
}
3940

3941
func setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) {
3942
	r1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0)
3943
	if r1 == 0 {
3944
		err = errnoErr(e1)
3945
	}
3946
	return
3947
}
3948

3949
func setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) {
3950
	r1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)))
3951
	if r1 == 0 {
3952
		err = errnoErr(e1)
3953
	}
3954
	return
3955
}
3956

3957
func SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) {
3958
	r0, _, e1 := syscall.Syscall6(procSetupDiOpenDevRegKey.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(Scope), uintptr(HwProfile), uintptr(KeyType), uintptr(samDesired))
3959
	key = Handle(r0)
3960
	if key == InvalidHandle {
3961
		err = errnoErr(e1)
3962
	}
3963
	return
3964
}
3965

3966
func SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) {
3967
	r1, _, e1 := syscall.Syscall6(procSetupDiSetClassInstallParamsW.Addr(), 4, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), 0, 0)
3968
	if r1 == 0 {
3969
		err = errnoErr(e1)
3970
	}
3971
	return
3972
}
3973

3974
func SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) {
3975
	r1, _, e1 := syscall.Syscall(procSetupDiSetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams)))
3976
	if r1 == 0 {
3977
		err = errnoErr(e1)
3978
	}
3979
	return
3980
}
3981

3982
func setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) {
3983
	r1, _, e1 := syscall.Syscall6(procSetupDiSetDeviceRegistryPropertyW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), 0)
3984
	if r1 == 0 {
3985
		err = errnoErr(e1)
3986
	}
3987
	return
3988
}
3989

3990
func SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) {
3991
	r1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0)
3992
	if r1 == 0 {
3993
		err = errnoErr(e1)
3994
	}
3995
	return
3996
}
3997

3998
func SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) {
3999
	r1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)))
4000
	if r1 == 0 {
4001
		err = errnoErr(e1)
4002
	}
4003
	return
4004
}
4005

4006
func setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) {
4007
	r1, _, e1 := syscall.Syscall(procSetupUninstallOEMInfW.Addr(), 3, uintptr(unsafe.Pointer(infFileName)), uintptr(flags), uintptr(reserved))
4008
	if r1 == 0 {
4009
		err = errnoErr(e1)
4010
	}
4011
	return
4012
}
4013

4014
func commandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) {
4015
	r0, _, e1 := syscall.Syscall(procCommandLineToArgvW.Addr(), 2, uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)), 0)
4016
	argv = (**uint16)(unsafe.Pointer(r0))
4017
	if argv == nil {
4018
		err = errnoErr(e1)
4019
	}
4020
	return
4021
}
4022

4023
func shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) {
4024
	r0, _, _ := syscall.Syscall6(procSHGetKnownFolderPath.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path)), 0, 0)
4025
	if r0 != 0 {
4026
		ret = syscall.Errno(r0)
4027
	}
4028
	return
4029
}
4030

4031
func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) {
4032
	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))
4033
	if r1 <= 32 {
4034
		err = errnoErr(e1)
4035
	}
4036
	return
4037
}
4038

4039
func EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) {
4040
	syscall.Syscall(procEnumChildWindows.Addr(), 3, uintptr(hwnd), uintptr(enumFunc), uintptr(param))
4041
	return
4042
}
4043

4044
func EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) {
4045
	r1, _, e1 := syscall.Syscall(procEnumWindows.Addr(), 2, uintptr(enumFunc), uintptr(param), 0)
4046
	if r1 == 0 {
4047
		err = errnoErr(e1)
4048
	}
4049
	return
4050
}
4051

4052
func ExitWindowsEx(flags uint32, reason uint32) (err error) {
4053
	r1, _, e1 := syscall.Syscall(procExitWindowsEx.Addr(), 2, uintptr(flags), uintptr(reason), 0)
4054
	if r1 == 0 {
4055
		err = errnoErr(e1)
4056
	}
4057
	return
4058
}
4059

4060
func GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) {
4061
	r0, _, e1 := syscall.Syscall(procGetClassNameW.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(className)), uintptr(maxCount))
4062
	copied = int32(r0)
4063
	if copied == 0 {
4064
		err = errnoErr(e1)
4065
	}
4066
	return
4067
}
4068

4069
func GetDesktopWindow() (hwnd HWND) {
4070
	r0, _, _ := syscall.Syscall(procGetDesktopWindow.Addr(), 0, 0, 0, 0)
4071
	hwnd = HWND(r0)
4072
	return
4073
}
4074

4075
func GetForegroundWindow() (hwnd HWND) {
4076
	r0, _, _ := syscall.Syscall(procGetForegroundWindow.Addr(), 0, 0, 0, 0)
4077
	hwnd = HWND(r0)
4078
	return
4079
}
4080

4081
func GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) {
4082
	r1, _, e1 := syscall.Syscall(procGetGUIThreadInfo.Addr(), 2, uintptr(thread), uintptr(unsafe.Pointer(info)), 0)
4083
	if r1 == 0 {
4084
		err = errnoErr(e1)
4085
	}
4086
	return
4087
}
4088

4089
func GetKeyboardLayout(tid uint32) (hkl Handle) {
4090
	r0, _, _ := syscall.Syscall(procGetKeyboardLayout.Addr(), 1, uintptr(tid), 0, 0)
4091
	hkl = Handle(r0)
4092
	return
4093
}
4094

4095
func GetShellWindow() (shellWindow HWND) {
4096
	r0, _, _ := syscall.Syscall(procGetShellWindow.Addr(), 0, 0, 0, 0)
4097
	shellWindow = HWND(r0)
4098
	return
4099
}
4100

4101
func GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) {
4102
	r0, _, e1 := syscall.Syscall(procGetWindowThreadProcessId.Addr(), 2, uintptr(hwnd), uintptr(unsafe.Pointer(pid)), 0)
4103
	tid = uint32(r0)
4104
	if tid == 0 {
4105
		err = errnoErr(e1)
4106
	}
4107
	return
4108
}
4109

4110
func IsWindow(hwnd HWND) (isWindow bool) {
4111
	r0, _, _ := syscall.Syscall(procIsWindow.Addr(), 1, uintptr(hwnd), 0, 0)
4112
	isWindow = r0 != 0
4113
	return
4114
}
4115

4116
func IsWindowUnicode(hwnd HWND) (isUnicode bool) {
4117
	r0, _, _ := syscall.Syscall(procIsWindowUnicode.Addr(), 1, uintptr(hwnd), 0, 0)
4118
	isUnicode = r0 != 0
4119
	return
4120
}
4121

4122
func IsWindowVisible(hwnd HWND) (isVisible bool) {
4123
	r0, _, _ := syscall.Syscall(procIsWindowVisible.Addr(), 1, uintptr(hwnd), 0, 0)
4124
	isVisible = r0 != 0
4125
	return
4126
}
4127

4128
func LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) {
4129
	r0, _, e1 := syscall.Syscall(procLoadKeyboardLayoutW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(flags), 0)
4130
	hkl = Handle(r0)
4131
	if hkl == 0 {
4132
		err = errnoErr(e1)
4133
	}
4134
	return
4135
}
4136

4137
func MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) {
4138
	r0, _, e1 := syscall.Syscall6(procMessageBoxW.Addr(), 4, uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype), 0, 0)
4139
	ret = int32(r0)
4140
	if ret == 0 {
4141
		err = errnoErr(e1)
4142
	}
4143
	return
4144
}
4145

4146
func ToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) {
4147
	r0, _, _ := syscall.Syscall9(procToUnicodeEx.Addr(), 7, uintptr(vkey), uintptr(scancode), uintptr(unsafe.Pointer(keystate)), uintptr(unsafe.Pointer(pwszBuff)), uintptr(cchBuff), uintptr(flags), uintptr(hkl), 0, 0)
4148
	ret = int32(r0)
4149
	return
4150
}
4151

4152
func UnloadKeyboardLayout(hkl Handle) (err error) {
4153
	r1, _, e1 := syscall.Syscall(procUnloadKeyboardLayout.Addr(), 1, uintptr(hkl), 0, 0)
4154
	if r1 == 0 {
4155
		err = errnoErr(e1)
4156
	}
4157
	return
4158
}
4159

4160
func CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) {
4161
	var _p0 uint32
4162
	if inheritExisting {
4163
		_p0 = 1
4164
	}
4165
	r1, _, e1 := syscall.Syscall(procCreateEnvironmentBlock.Addr(), 3, uintptr(unsafe.Pointer(block)), uintptr(token), uintptr(_p0))
4166
	if r1 == 0 {
4167
		err = errnoErr(e1)
4168
	}
4169
	return
4170
}
4171

4172
func DestroyEnvironmentBlock(block *uint16) (err error) {
4173
	r1, _, e1 := syscall.Syscall(procDestroyEnvironmentBlock.Addr(), 1, uintptr(unsafe.Pointer(block)), 0, 0)
4174
	if r1 == 0 {
4175
		err = errnoErr(e1)
4176
	}
4177
	return
4178
}
4179

4180
func GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) {
4181
	r1, _, e1 := syscall.Syscall(procGetUserProfileDirectoryW.Addr(), 3, uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen)))
4182
	if r1 == 0 {
4183
		err = errnoErr(e1)
4184
	}
4185
	return
4186
}
4187

4188
func GetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32, err error) {
4189
	var _p0 *uint16
4190
	_p0, err = syscall.UTF16PtrFromString(filename)
4191
	if err != nil {
4192
		return
4193
	}
4194
	return _GetFileVersionInfoSize(_p0, zeroHandle)
4195
}
4196

4197
func _GetFileVersionInfoSize(filename *uint16, zeroHandle *Handle) (bufSize uint32, err error) {
4198
	r0, _, e1 := syscall.Syscall(procGetFileVersionInfoSizeW.Addr(), 2, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(zeroHandle)), 0)
4199
	bufSize = uint32(r0)
4200
	if bufSize == 0 {
4201
		err = errnoErr(e1)
4202
	}
4203
	return
4204
}
4205

4206
func GetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) {
4207
	var _p0 *uint16
4208
	_p0, err = syscall.UTF16PtrFromString(filename)
4209
	if err != nil {
4210
		return
4211
	}
4212
	return _GetFileVersionInfo(_p0, handle, bufSize, buffer)
4213
}
4214

4215
func _GetFileVersionInfo(filename *uint16, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) {
4216
	r1, _, e1 := syscall.Syscall6(procGetFileVersionInfoW.Addr(), 4, uintptr(unsafe.Pointer(filename)), uintptr(handle), uintptr(bufSize), uintptr(buffer), 0, 0)
4217
	if r1 == 0 {
4218
		err = errnoErr(e1)
4219
	}
4220
	return
4221
}
4222

4223
func VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) {
4224
	var _p0 *uint16
4225
	_p0, err = syscall.UTF16PtrFromString(subBlock)
4226
	if err != nil {
4227
		return
4228
	}
4229
	return _VerQueryValue(block, _p0, pointerToBufferPointer, bufSize)
4230
}
4231

4232
func _VerQueryValue(block unsafe.Pointer, subBlock *uint16, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) {
4233
	r1, _, e1 := syscall.Syscall6(procVerQueryValueW.Addr(), 4, uintptr(block), uintptr(unsafe.Pointer(subBlock)), uintptr(pointerToBufferPointer), uintptr(unsafe.Pointer(bufSize)), 0, 0)
4234
	if r1 == 0 {
4235
		err = errnoErr(e1)
4236
	}
4237
	return
4238
}
4239

4240
func TimeBeginPeriod(period uint32) (err error) {
4241
	r1, _, e1 := syscall.Syscall(proctimeBeginPeriod.Addr(), 1, uintptr(period), 0, 0)
4242
	if r1 != 0 {
4243
		err = errnoErr(e1)
4244
	}
4245
	return
4246
}
4247

4248
func TimeEndPeriod(period uint32) (err error) {
4249
	r1, _, e1 := syscall.Syscall(proctimeEndPeriod.Addr(), 1, uintptr(period), 0, 0)
4250
	if r1 != 0 {
4251
		err = errnoErr(e1)
4252
	}
4253
	return
4254
}
4255

4256
func WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) {
4257
	r0, _, _ := syscall.Syscall(procWinVerifyTrustEx.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(actionId)), uintptr(unsafe.Pointer(data)))
4258
	if r0 != 0 {
4259
		ret = syscall.Errno(r0)
4260
	}
4261
	return
4262
}
4263

4264
func FreeAddrInfoW(addrinfo *AddrinfoW) {
4265
	syscall.Syscall(procFreeAddrInfoW.Addr(), 1, uintptr(unsafe.Pointer(addrinfo)), 0, 0)
4266
	return
4267
}
4268

4269
func GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) {
4270
	r0, _, _ := syscall.Syscall6(procGetAddrInfoW.Addr(), 4, uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result)), 0, 0)
4271
	if r0 != 0 {
4272
		sockerr = syscall.Errno(r0)
4273
	}
4274
	return
4275
}
4276

4277
func WSACleanup() (err error) {
4278
	r1, _, e1 := syscall.Syscall(procWSACleanup.Addr(), 0, 0, 0, 0)
4279
	if r1 == socket_error {
4280
		err = errnoErr(e1)
4281
	}
4282
	return
4283
}
4284

4285
func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) {
4286
	r0, _, e1 := syscall.Syscall(procWSAEnumProtocolsW.Addr(), 3, uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength)))
4287
	n = int32(r0)
4288
	if n == -1 {
4289
		err = errnoErr(e1)
4290
	}
4291
	return
4292
}
4293

4294
func WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) {
4295
	var _p0 uint32
4296
	if wait {
4297
		_p0 = 1
4298
	}
4299
	r1, _, e1 := syscall.Syscall6(procWSAGetOverlappedResult.Addr(), 5, uintptr(h), uintptr(unsafe.Pointer(o)), uintptr(unsafe.Pointer(bytes)), uintptr(_p0), uintptr(unsafe.Pointer(flags)), 0)
4300
	if r1 == 0 {
4301
		err = errnoErr(e1)
4302
	}
4303
	return
4304
}
4305

4306
func WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) {
4307
	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))
4308
	if r1 == socket_error {
4309
		err = errnoErr(e1)
4310
	}
4311
	return
4312
}
4313

4314
func WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) {
4315
	r1, _, e1 := syscall.Syscall(procWSALookupServiceBeginW.Addr(), 3, uintptr(unsafe.Pointer(querySet)), uintptr(flags), uintptr(unsafe.Pointer(handle)))
4316
	if r1 == socket_error {
4317
		err = errnoErr(e1)
4318
	}
4319
	return
4320
}
4321

4322
func WSALookupServiceEnd(handle Handle) (err error) {
4323
	r1, _, e1 := syscall.Syscall(procWSALookupServiceEnd.Addr(), 1, uintptr(handle), 0, 0)
4324
	if r1 == socket_error {
4325
		err = errnoErr(e1)
4326
	}
4327
	return
4328
}
4329

4330
func WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) {
4331
	r1, _, e1 := syscall.Syscall6(procWSALookupServiceNextW.Addr(), 4, uintptr(handle), uintptr(flags), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(querySet)), 0, 0)
4332
	if r1 == socket_error {
4333
		err = errnoErr(e1)
4334
	}
4335
	return
4336
}
4337

4338
func WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) {
4339
	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)
4340
	if r1 == socket_error {
4341
		err = errnoErr(e1)
4342
	}
4343
	return
4344
}
4345

4346
func WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) {
4347
	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)))
4348
	if r1 == socket_error {
4349
		err = errnoErr(e1)
4350
	}
4351
	return
4352
}
4353

4354
func WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) {
4355
	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)
4356
	if r1 == socket_error {
4357
		err = errnoErr(e1)
4358
	}
4359
	return
4360
}
4361

4362
func WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) {
4363
	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)))
4364
	if r1 == socket_error {
4365
		err = errnoErr(e1)
4366
	}
4367
	return
4368
}
4369

4370
func WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) {
4371
	r0, _, e1 := syscall.Syscall6(procWSASocketW.Addr(), 6, uintptr(af), uintptr(typ), uintptr(protocol), uintptr(unsafe.Pointer(protoInfo)), uintptr(group), uintptr(flags))
4372
	handle = Handle(r0)
4373
	if handle == InvalidHandle {
4374
		err = errnoErr(e1)
4375
	}
4376
	return
4377
}
4378

4379
func WSAStartup(verreq uint32, data *WSAData) (sockerr error) {
4380
	r0, _, _ := syscall.Syscall(procWSAStartup.Addr(), 2, uintptr(verreq), uintptr(unsafe.Pointer(data)), 0)
4381
	if r0 != 0 {
4382
		sockerr = syscall.Errno(r0)
4383
	}
4384
	return
4385
}
4386

4387
func bind(s Handle, name unsafe.Pointer, namelen int32) (err error) {
4388
	r1, _, e1 := syscall.Syscall(procbind.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen))
4389
	if r1 == socket_error {
4390
		err = errnoErr(e1)
4391
	}
4392
	return
4393
}
4394

4395
func Closesocket(s Handle) (err error) {
4396
	r1, _, e1 := syscall.Syscall(procclosesocket.Addr(), 1, uintptr(s), 0, 0)
4397
	if r1 == socket_error {
4398
		err = errnoErr(e1)
4399
	}
4400
	return
4401
}
4402

4403
func connect(s Handle, name unsafe.Pointer, namelen int32) (err error) {
4404
	r1, _, e1 := syscall.Syscall(procconnect.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen))
4405
	if r1 == socket_error {
4406
		err = errnoErr(e1)
4407
	}
4408
	return
4409
}
4410

4411
func GetHostByName(name string) (h *Hostent, err error) {
4412
	var _p0 *byte
4413
	_p0, err = syscall.BytePtrFromString(name)
4414
	if err != nil {
4415
		return
4416
	}
4417
	return _GetHostByName(_p0)
4418
}
4419

4420
func _GetHostByName(name *byte) (h *Hostent, err error) {
4421
	r0, _, e1 := syscall.Syscall(procgethostbyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0)
4422
	h = (*Hostent)(unsafe.Pointer(r0))
4423
	if h == nil {
4424
		err = errnoErr(e1)
4425
	}
4426
	return
4427
}
4428

4429
func getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) {
4430
	r1, _, e1 := syscall.Syscall(procgetpeername.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
4431
	if r1 == socket_error {
4432
		err = errnoErr(e1)
4433
	}
4434
	return
4435
}
4436

4437
func GetProtoByName(name string) (p *Protoent, err error) {
4438
	var _p0 *byte
4439
	_p0, err = syscall.BytePtrFromString(name)
4440
	if err != nil {
4441
		return
4442
	}
4443
	return _GetProtoByName(_p0)
4444
}
4445

4446
func _GetProtoByName(name *byte) (p *Protoent, err error) {
4447
	r0, _, e1 := syscall.Syscall(procgetprotobyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0)
4448
	p = (*Protoent)(unsafe.Pointer(r0))
4449
	if p == nil {
4450
		err = errnoErr(e1)
4451
	}
4452
	return
4453
}
4454

4455
func GetServByName(name string, proto string) (s *Servent, err error) {
4456
	var _p0 *byte
4457
	_p0, err = syscall.BytePtrFromString(name)
4458
	if err != nil {
4459
		return
4460
	}
4461
	var _p1 *byte
4462
	_p1, err = syscall.BytePtrFromString(proto)
4463
	if err != nil {
4464
		return
4465
	}
4466
	return _GetServByName(_p0, _p1)
4467
}
4468

4469
func _GetServByName(name *byte, proto *byte) (s *Servent, err error) {
4470
	r0, _, e1 := syscall.Syscall(procgetservbyname.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto)), 0)
4471
	s = (*Servent)(unsafe.Pointer(r0))
4472
	if s == nil {
4473
		err = errnoErr(e1)
4474
	}
4475
	return
4476
}
4477

4478
func getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) {
4479
	r1, _, e1 := syscall.Syscall(procgetsockname.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
4480
	if r1 == socket_error {
4481
		err = errnoErr(e1)
4482
	}
4483
	return
4484
}
4485

4486
func Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) {
4487
	r1, _, e1 := syscall.Syscall6(procgetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen)), 0)
4488
	if r1 == socket_error {
4489
		err = errnoErr(e1)
4490
	}
4491
	return
4492
}
4493

4494
func listen(s Handle, backlog int32) (err error) {
4495
	r1, _, e1 := syscall.Syscall(proclisten.Addr(), 2, uintptr(s), uintptr(backlog), 0)
4496
	if r1 == socket_error {
4497
		err = errnoErr(e1)
4498
	}
4499
	return
4500
}
4501

4502
func Ntohs(netshort uint16) (u uint16) {
4503
	r0, _, _ := syscall.Syscall(procntohs.Addr(), 1, uintptr(netshort), 0, 0)
4504
	u = uint16(r0)
4505
	return
4506
}
4507

4508
func recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) {
4509
	var _p0 *byte
4510
	if len(buf) > 0 {
4511
		_p0 = &buf[0]
4512
	}
4513
	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)))
4514
	n = int32(r0)
4515
	if n == -1 {
4516
		err = errnoErr(e1)
4517
	}
4518
	return
4519
}
4520

4521
func sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) {
4522
	var _p0 *byte
4523
	if len(buf) > 0 {
4524
		_p0 = &buf[0]
4525
	}
4526
	r1, _, e1 := syscall.Syscall6(procsendto.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(tolen))
4527
	if r1 == socket_error {
4528
		err = errnoErr(e1)
4529
	}
4530
	return
4531
}
4532

4533
func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) {
4534
	r1, _, e1 := syscall.Syscall6(procsetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen), 0)
4535
	if r1 == socket_error {
4536
		err = errnoErr(e1)
4537
	}
4538
	return
4539
}
4540

4541
func shutdown(s Handle, how int32) (err error) {
4542
	r1, _, e1 := syscall.Syscall(procshutdown.Addr(), 2, uintptr(s), uintptr(how), 0)
4543
	if r1 == socket_error {
4544
		err = errnoErr(e1)
4545
	}
4546
	return
4547
}
4548

4549
func socket(af int32, typ int32, protocol int32) (handle Handle, err error) {
4550
	r0, _, e1 := syscall.Syscall(procsocket.Addr(), 3, uintptr(af), uintptr(typ), uintptr(protocol))
4551
	handle = Handle(r0)
4552
	if handle == InvalidHandle {
4553
		err = errnoErr(e1)
4554
	}
4555
	return
4556
}
4557

4558
func WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) {
4559
	r1, _, e1 := syscall.Syscall6(procWTSEnumerateSessionsW.Addr(), 5, uintptr(handle), uintptr(reserved), uintptr(version), uintptr(unsafe.Pointer(sessions)), uintptr(unsafe.Pointer(count)), 0)
4560
	if r1 == 0 {
4561
		err = errnoErr(e1)
4562
	}
4563
	return
4564
}
4565

4566
func WTSFreeMemory(ptr uintptr) {
4567
	syscall.Syscall(procWTSFreeMemory.Addr(), 1, uintptr(ptr), 0, 0)
4568
	return
4569
}
4570

4571
func WTSQueryUserToken(session uint32, token *Token) (err error) {
4572
	r1, _, e1 := syscall.Syscall(procWTSQueryUserToken.Addr(), 2, uintptr(session), uintptr(unsafe.Pointer(token)), 0)
4573
	if r1 == 0 {
4574
		err = errnoErr(e1)
4575
	}
4576
	return
4577
}
4578

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.