github.com/zebozhuang/go@v0.0.0-20200207033046-f8a98f6f5c5d/src/syscall/zsyscall_windows.go (about) 1 // MACHINE GENERATED BY 'go generate' COMMAND; DO NOT EDIT 2 3 package syscall 4 5 import ( 6 "internal/syscall/windows/sysdll" 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 = Errno(errnoERROR_IO_PENDING) 20 ) 21 22 // errnoErr returns common boxed Errno values, to prevent 23 // allocations at runtime. 24 func errnoErr(e Errno) error { 25 switch e { 26 case 0: 27 return nil 28 case errnoERROR_IO_PENDING: 29 return errERROR_IO_PENDING 30 } 31 // TODO: add more here, after collecting data on the common 32 // error values see on Windows. (perhaps when running 33 // all.bat?) 34 return e 35 } 36 37 var ( 38 modkernel32 = NewLazyDLL(sysdll.Add("kernel32.dll")) 39 modadvapi32 = NewLazyDLL(sysdll.Add("advapi32.dll")) 40 modshell32 = NewLazyDLL(sysdll.Add("shell32.dll")) 41 modmswsock = NewLazyDLL(sysdll.Add("mswsock.dll")) 42 modcrypt32 = NewLazyDLL(sysdll.Add("crypt32.dll")) 43 modws2_32 = NewLazyDLL(sysdll.Add("ws2_32.dll")) 44 moddnsapi = NewLazyDLL(sysdll.Add("dnsapi.dll")) 45 modiphlpapi = NewLazyDLL(sysdll.Add("iphlpapi.dll")) 46 modsecur32 = NewLazyDLL(sysdll.Add("secur32.dll")) 47 modnetapi32 = NewLazyDLL(sysdll.Add("netapi32.dll")) 48 moduserenv = NewLazyDLL(sysdll.Add("userenv.dll")) 49 50 procGetLastError = modkernel32.NewProc("GetLastError") 51 procLoadLibraryW = modkernel32.NewProc("LoadLibraryW") 52 procFreeLibrary = modkernel32.NewProc("FreeLibrary") 53 procGetProcAddress = modkernel32.NewProc("GetProcAddress") 54 procGetVersion = modkernel32.NewProc("GetVersion") 55 procFormatMessageW = modkernel32.NewProc("FormatMessageW") 56 procExitProcess = modkernel32.NewProc("ExitProcess") 57 procCreateFileW = modkernel32.NewProc("CreateFileW") 58 procReadFile = modkernel32.NewProc("ReadFile") 59 procWriteFile = modkernel32.NewProc("WriteFile") 60 procSetFilePointer = modkernel32.NewProc("SetFilePointer") 61 procCloseHandle = modkernel32.NewProc("CloseHandle") 62 procGetStdHandle = modkernel32.NewProc("GetStdHandle") 63 procFindFirstFileW = modkernel32.NewProc("FindFirstFileW") 64 procFindNextFileW = modkernel32.NewProc("FindNextFileW") 65 procFindClose = modkernel32.NewProc("FindClose") 66 procGetFileInformationByHandle = modkernel32.NewProc("GetFileInformationByHandle") 67 procGetCurrentDirectoryW = modkernel32.NewProc("GetCurrentDirectoryW") 68 procSetCurrentDirectoryW = modkernel32.NewProc("SetCurrentDirectoryW") 69 procCreateDirectoryW = modkernel32.NewProc("CreateDirectoryW") 70 procRemoveDirectoryW = modkernel32.NewProc("RemoveDirectoryW") 71 procDeleteFileW = modkernel32.NewProc("DeleteFileW") 72 procMoveFileW = modkernel32.NewProc("MoveFileW") 73 procGetComputerNameW = modkernel32.NewProc("GetComputerNameW") 74 procSetEndOfFile = modkernel32.NewProc("SetEndOfFile") 75 procGetSystemTimeAsFileTime = modkernel32.NewProc("GetSystemTimeAsFileTime") 76 procGetTimeZoneInformation = modkernel32.NewProc("GetTimeZoneInformation") 77 procCreateIoCompletionPort = modkernel32.NewProc("CreateIoCompletionPort") 78 procGetQueuedCompletionStatus = modkernel32.NewProc("GetQueuedCompletionStatus") 79 procPostQueuedCompletionStatus = modkernel32.NewProc("PostQueuedCompletionStatus") 80 procCancelIo = modkernel32.NewProc("CancelIo") 81 procCancelIoEx = modkernel32.NewProc("CancelIoEx") 82 procCreateProcessW = modkernel32.NewProc("CreateProcessW") 83 procOpenProcess = modkernel32.NewProc("OpenProcess") 84 procTerminateProcess = modkernel32.NewProc("TerminateProcess") 85 procGetExitCodeProcess = modkernel32.NewProc("GetExitCodeProcess") 86 procGetStartupInfoW = modkernel32.NewProc("GetStartupInfoW") 87 procGetCurrentProcess = modkernel32.NewProc("GetCurrentProcess") 88 procGetProcessTimes = modkernel32.NewProc("GetProcessTimes") 89 procDuplicateHandle = modkernel32.NewProc("DuplicateHandle") 90 procWaitForSingleObject = modkernel32.NewProc("WaitForSingleObject") 91 procGetTempPathW = modkernel32.NewProc("GetTempPathW") 92 procCreatePipe = modkernel32.NewProc("CreatePipe") 93 procGetFileType = modkernel32.NewProc("GetFileType") 94 procCryptAcquireContextW = modadvapi32.NewProc("CryptAcquireContextW") 95 procCryptReleaseContext = modadvapi32.NewProc("CryptReleaseContext") 96 procCryptGenRandom = modadvapi32.NewProc("CryptGenRandom") 97 procGetEnvironmentStringsW = modkernel32.NewProc("GetEnvironmentStringsW") 98 procFreeEnvironmentStringsW = modkernel32.NewProc("FreeEnvironmentStringsW") 99 procGetEnvironmentVariableW = modkernel32.NewProc("GetEnvironmentVariableW") 100 procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW") 101 procSetFileTime = modkernel32.NewProc("SetFileTime") 102 procGetFileAttributesW = modkernel32.NewProc("GetFileAttributesW") 103 procSetFileAttributesW = modkernel32.NewProc("SetFileAttributesW") 104 procGetFileAttributesExW = modkernel32.NewProc("GetFileAttributesExW") 105 procGetCommandLineW = modkernel32.NewProc("GetCommandLineW") 106 procCommandLineToArgvW = modshell32.NewProc("CommandLineToArgvW") 107 procLocalFree = modkernel32.NewProc("LocalFree") 108 procSetHandleInformation = modkernel32.NewProc("SetHandleInformation") 109 procFlushFileBuffers = modkernel32.NewProc("FlushFileBuffers") 110 procGetFullPathNameW = modkernel32.NewProc("GetFullPathNameW") 111 procGetLongPathNameW = modkernel32.NewProc("GetLongPathNameW") 112 procGetShortPathNameW = modkernel32.NewProc("GetShortPathNameW") 113 procCreateFileMappingW = modkernel32.NewProc("CreateFileMappingW") 114 procMapViewOfFile = modkernel32.NewProc("MapViewOfFile") 115 procUnmapViewOfFile = modkernel32.NewProc("UnmapViewOfFile") 116 procFlushViewOfFile = modkernel32.NewProc("FlushViewOfFile") 117 procVirtualLock = modkernel32.NewProc("VirtualLock") 118 procVirtualUnlock = modkernel32.NewProc("VirtualUnlock") 119 procTransmitFile = modmswsock.NewProc("TransmitFile") 120 procReadDirectoryChangesW = modkernel32.NewProc("ReadDirectoryChangesW") 121 procCertOpenSystemStoreW = modcrypt32.NewProc("CertOpenSystemStoreW") 122 procCertOpenStore = modcrypt32.NewProc("CertOpenStore") 123 procCertEnumCertificatesInStore = modcrypt32.NewProc("CertEnumCertificatesInStore") 124 procCertAddCertificateContextToStore = modcrypt32.NewProc("CertAddCertificateContextToStore") 125 procCertCloseStore = modcrypt32.NewProc("CertCloseStore") 126 procCertGetCertificateChain = modcrypt32.NewProc("CertGetCertificateChain") 127 procCertFreeCertificateChain = modcrypt32.NewProc("CertFreeCertificateChain") 128 procCertCreateCertificateContext = modcrypt32.NewProc("CertCreateCertificateContext") 129 procCertFreeCertificateContext = modcrypt32.NewProc("CertFreeCertificateContext") 130 procCertVerifyCertificateChainPolicy = modcrypt32.NewProc("CertVerifyCertificateChainPolicy") 131 procRegOpenKeyExW = modadvapi32.NewProc("RegOpenKeyExW") 132 procRegCloseKey = modadvapi32.NewProc("RegCloseKey") 133 procRegQueryInfoKeyW = modadvapi32.NewProc("RegQueryInfoKeyW") 134 procRegEnumKeyExW = modadvapi32.NewProc("RegEnumKeyExW") 135 procRegQueryValueExW = modadvapi32.NewProc("RegQueryValueExW") 136 procGetCurrentProcessId = modkernel32.NewProc("GetCurrentProcessId") 137 procGetConsoleMode = modkernel32.NewProc("GetConsoleMode") 138 procWriteConsoleW = modkernel32.NewProc("WriteConsoleW") 139 procReadConsoleW = modkernel32.NewProc("ReadConsoleW") 140 procCreateToolhelp32Snapshot = modkernel32.NewProc("CreateToolhelp32Snapshot") 141 procProcess32FirstW = modkernel32.NewProc("Process32FirstW") 142 procProcess32NextW = modkernel32.NewProc("Process32NextW") 143 procDeviceIoControl = modkernel32.NewProc("DeviceIoControl") 144 procCreateSymbolicLinkW = modkernel32.NewProc("CreateSymbolicLinkW") 145 procCreateHardLinkW = modkernel32.NewProc("CreateHardLinkW") 146 procWSAStartup = modws2_32.NewProc("WSAStartup") 147 procWSACleanup = modws2_32.NewProc("WSACleanup") 148 procWSAIoctl = modws2_32.NewProc("WSAIoctl") 149 procsocket = modws2_32.NewProc("socket") 150 procsetsockopt = modws2_32.NewProc("setsockopt") 151 procgetsockopt = modws2_32.NewProc("getsockopt") 152 procbind = modws2_32.NewProc("bind") 153 procconnect = modws2_32.NewProc("connect") 154 procgetsockname = modws2_32.NewProc("getsockname") 155 procgetpeername = modws2_32.NewProc("getpeername") 156 proclisten = modws2_32.NewProc("listen") 157 procshutdown = modws2_32.NewProc("shutdown") 158 procclosesocket = modws2_32.NewProc("closesocket") 159 procAcceptEx = modmswsock.NewProc("AcceptEx") 160 procGetAcceptExSockaddrs = modmswsock.NewProc("GetAcceptExSockaddrs") 161 procWSARecv = modws2_32.NewProc("WSARecv") 162 procWSASend = modws2_32.NewProc("WSASend") 163 procWSARecvFrom = modws2_32.NewProc("WSARecvFrom") 164 procWSASendTo = modws2_32.NewProc("WSASendTo") 165 procgethostbyname = modws2_32.NewProc("gethostbyname") 166 procgetservbyname = modws2_32.NewProc("getservbyname") 167 procntohs = modws2_32.NewProc("ntohs") 168 procgetprotobyname = modws2_32.NewProc("getprotobyname") 169 procDnsQuery_W = moddnsapi.NewProc("DnsQuery_W") 170 procDnsRecordListFree = moddnsapi.NewProc("DnsRecordListFree") 171 procDnsNameCompare_W = moddnsapi.NewProc("DnsNameCompare_W") 172 procGetAddrInfoW = modws2_32.NewProc("GetAddrInfoW") 173 procFreeAddrInfoW = modws2_32.NewProc("FreeAddrInfoW") 174 procGetIfEntry = modiphlpapi.NewProc("GetIfEntry") 175 procGetAdaptersInfo = modiphlpapi.NewProc("GetAdaptersInfo") 176 procSetFileCompletionNotificationModes = modkernel32.NewProc("SetFileCompletionNotificationModes") 177 procWSAEnumProtocolsW = modws2_32.NewProc("WSAEnumProtocolsW") 178 procTranslateNameW = modsecur32.NewProc("TranslateNameW") 179 procGetUserNameExW = modsecur32.NewProc("GetUserNameExW") 180 procNetUserGetInfo = modnetapi32.NewProc("NetUserGetInfo") 181 procNetGetJoinInformation = modnetapi32.NewProc("NetGetJoinInformation") 182 procNetApiBufferFree = modnetapi32.NewProc("NetApiBufferFree") 183 procLookupAccountSidW = modadvapi32.NewProc("LookupAccountSidW") 184 procLookupAccountNameW = modadvapi32.NewProc("LookupAccountNameW") 185 procConvertSidToStringSidW = modadvapi32.NewProc("ConvertSidToStringSidW") 186 procConvertStringSidToSidW = modadvapi32.NewProc("ConvertStringSidToSidW") 187 procGetLengthSid = modadvapi32.NewProc("GetLengthSid") 188 procCopySid = modadvapi32.NewProc("CopySid") 189 procOpenProcessToken = modadvapi32.NewProc("OpenProcessToken") 190 procGetTokenInformation = modadvapi32.NewProc("GetTokenInformation") 191 procGetUserProfileDirectoryW = moduserenv.NewProc("GetUserProfileDirectoryW") 192 ) 193 194 func GetLastError() (lasterr error) { 195 r0, _, _ := Syscall(procGetLastError.Addr(), 0, 0, 0, 0) 196 if r0 != 0 { 197 lasterr = Errno(r0) 198 } 199 return 200 } 201 202 func LoadLibrary(libname string) (handle Handle, err error) { 203 var _p0 *uint16 204 _p0, err = UTF16PtrFromString(libname) 205 if err != nil { 206 return 207 } 208 return _LoadLibrary(_p0) 209 } 210 211 func _LoadLibrary(libname *uint16) (handle Handle, err error) { 212 r0, _, e1 := Syscall(procLoadLibraryW.Addr(), 1, uintptr(unsafe.Pointer(libname)), 0, 0) 213 handle = Handle(r0) 214 if handle == 0 { 215 if e1 != 0 { 216 err = errnoErr(e1) 217 } else { 218 err = EINVAL 219 } 220 } 221 return 222 } 223 224 func FreeLibrary(handle Handle) (err error) { 225 r1, _, e1 := Syscall(procFreeLibrary.Addr(), 1, uintptr(handle), 0, 0) 226 if r1 == 0 { 227 if e1 != 0 { 228 err = errnoErr(e1) 229 } else { 230 err = EINVAL 231 } 232 } 233 return 234 } 235 236 func GetProcAddress(module Handle, procname string) (proc uintptr, err error) { 237 var _p0 *byte 238 _p0, err = BytePtrFromString(procname) 239 if err != nil { 240 return 241 } 242 return _GetProcAddress(module, _p0) 243 } 244 245 func _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) { 246 r0, _, e1 := Syscall(procGetProcAddress.Addr(), 2, uintptr(module), uintptr(unsafe.Pointer(procname)), 0) 247 proc = uintptr(r0) 248 if proc == 0 { 249 if e1 != 0 { 250 err = errnoErr(e1) 251 } else { 252 err = EINVAL 253 } 254 } 255 return 256 } 257 258 func GetVersion() (ver uint32, err error) { 259 r0, _, e1 := Syscall(procGetVersion.Addr(), 0, 0, 0, 0) 260 ver = uint32(r0) 261 if ver == 0 { 262 if e1 != 0 { 263 err = errnoErr(e1) 264 } else { 265 err = EINVAL 266 } 267 } 268 return 269 } 270 271 func formatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) { 272 var _p0 *uint16 273 if len(buf) > 0 { 274 _p0 = &buf[0] 275 } 276 r0, _, e1 := 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) 277 n = uint32(r0) 278 if n == 0 { 279 if e1 != 0 { 280 err = errnoErr(e1) 281 } else { 282 err = EINVAL 283 } 284 } 285 return 286 } 287 288 func ExitProcess(exitcode uint32) { 289 Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0) 290 return 291 } 292 293 func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile int32) (handle Handle, err error) { 294 r0, _, e1 := Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0) 295 handle = Handle(r0) 296 if handle == InvalidHandle { 297 if e1 != 0 { 298 err = errnoErr(e1) 299 } else { 300 err = EINVAL 301 } 302 } 303 return 304 } 305 306 func ReadFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { 307 var _p0 *byte 308 if len(buf) > 0 { 309 _p0 = &buf[0] 310 } 311 r1, _, e1 := Syscall6(procReadFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) 312 if r1 == 0 { 313 if e1 != 0 { 314 err = errnoErr(e1) 315 } else { 316 err = EINVAL 317 } 318 } 319 return 320 } 321 322 func WriteFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { 323 var _p0 *byte 324 if len(buf) > 0 { 325 _p0 = &buf[0] 326 } 327 r1, _, e1 := Syscall6(procWriteFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) 328 if r1 == 0 { 329 if e1 != 0 { 330 err = errnoErr(e1) 331 } else { 332 err = EINVAL 333 } 334 } 335 return 336 } 337 338 func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) { 339 r0, _, e1 := Syscall6(procSetFilePointer.Addr(), 4, uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence), 0, 0) 340 newlowoffset = uint32(r0) 341 if newlowoffset == 0xffffffff { 342 if e1 != 0 { 343 err = errnoErr(e1) 344 } else { 345 err = EINVAL 346 } 347 } 348 return 349 } 350 351 func CloseHandle(handle Handle) (err error) { 352 r1, _, e1 := Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0) 353 if r1 == 0 { 354 if e1 != 0 { 355 err = errnoErr(e1) 356 } else { 357 err = EINVAL 358 } 359 } 360 return 361 } 362 363 func GetStdHandle(stdhandle int) (handle Handle, err error) { 364 r0, _, e1 := Syscall(procGetStdHandle.Addr(), 1, uintptr(stdhandle), 0, 0) 365 handle = Handle(r0) 366 if handle == InvalidHandle { 367 if e1 != 0 { 368 err = errnoErr(e1) 369 } else { 370 err = EINVAL 371 } 372 } 373 return 374 } 375 376 func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) { 377 r0, _, e1 := Syscall(procFindFirstFileW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)), 0) 378 handle = Handle(r0) 379 if handle == InvalidHandle { 380 if e1 != 0 { 381 err = errnoErr(e1) 382 } else { 383 err = EINVAL 384 } 385 } 386 return 387 } 388 389 func findNextFile1(handle Handle, data *win32finddata1) (err error) { 390 r1, _, e1 := Syscall(procFindNextFileW.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) 391 if r1 == 0 { 392 if e1 != 0 { 393 err = errnoErr(e1) 394 } else { 395 err = EINVAL 396 } 397 } 398 return 399 } 400 401 func FindClose(handle Handle) (err error) { 402 r1, _, e1 := Syscall(procFindClose.Addr(), 1, uintptr(handle), 0, 0) 403 if r1 == 0 { 404 if e1 != 0 { 405 err = errnoErr(e1) 406 } else { 407 err = EINVAL 408 } 409 } 410 return 411 } 412 413 func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) { 414 r1, _, e1 := Syscall(procGetFileInformationByHandle.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) 415 if r1 == 0 { 416 if e1 != 0 { 417 err = errnoErr(e1) 418 } else { 419 err = EINVAL 420 } 421 } 422 return 423 } 424 425 func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) { 426 r0, _, e1 := Syscall(procGetCurrentDirectoryW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) 427 n = uint32(r0) 428 if n == 0 { 429 if e1 != 0 { 430 err = errnoErr(e1) 431 } else { 432 err = EINVAL 433 } 434 } 435 return 436 } 437 438 func SetCurrentDirectory(path *uint16) (err error) { 439 r1, _, e1 := Syscall(procSetCurrentDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) 440 if r1 == 0 { 441 if e1 != 0 { 442 err = errnoErr(e1) 443 } else { 444 err = EINVAL 445 } 446 } 447 return 448 } 449 450 func CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) { 451 r1, _, e1 := Syscall(procCreateDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa)), 0) 452 if r1 == 0 { 453 if e1 != 0 { 454 err = errnoErr(e1) 455 } else { 456 err = EINVAL 457 } 458 } 459 return 460 } 461 462 func RemoveDirectory(path *uint16) (err error) { 463 r1, _, e1 := Syscall(procRemoveDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) 464 if r1 == 0 { 465 if e1 != 0 { 466 err = errnoErr(e1) 467 } else { 468 err = EINVAL 469 } 470 } 471 return 472 } 473 474 func DeleteFile(path *uint16) (err error) { 475 r1, _, e1 := Syscall(procDeleteFileW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) 476 if r1 == 0 { 477 if e1 != 0 { 478 err = errnoErr(e1) 479 } else { 480 err = EINVAL 481 } 482 } 483 return 484 } 485 486 func MoveFile(from *uint16, to *uint16) (err error) { 487 r1, _, e1 := Syscall(procMoveFileW.Addr(), 2, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), 0) 488 if r1 == 0 { 489 if e1 != 0 { 490 err = errnoErr(e1) 491 } else { 492 err = EINVAL 493 } 494 } 495 return 496 } 497 498 func GetComputerName(buf *uint16, n *uint32) (err error) { 499 r1, _, e1 := Syscall(procGetComputerNameW.Addr(), 2, uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)), 0) 500 if r1 == 0 { 501 if e1 != 0 { 502 err = errnoErr(e1) 503 } else { 504 err = EINVAL 505 } 506 } 507 return 508 } 509 510 func SetEndOfFile(handle Handle) (err error) { 511 r1, _, e1 := Syscall(procSetEndOfFile.Addr(), 1, uintptr(handle), 0, 0) 512 if r1 == 0 { 513 if e1 != 0 { 514 err = errnoErr(e1) 515 } else { 516 err = EINVAL 517 } 518 } 519 return 520 } 521 522 func GetSystemTimeAsFileTime(time *Filetime) { 523 Syscall(procGetSystemTimeAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) 524 return 525 } 526 527 func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) { 528 r0, _, e1 := Syscall(procGetTimeZoneInformation.Addr(), 1, uintptr(unsafe.Pointer(tzi)), 0, 0) 529 rc = uint32(r0) 530 if rc == 0xffffffff { 531 if e1 != 0 { 532 err = errnoErr(e1) 533 } else { 534 err = EINVAL 535 } 536 } 537 return 538 } 539 540 func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uint32, threadcnt uint32) (handle Handle, err error) { 541 r0, _, e1 := Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt), 0, 0) 542 handle = Handle(r0) 543 if handle == 0 { 544 if e1 != 0 { 545 err = errnoErr(e1) 546 } else { 547 err = EINVAL 548 } 549 } 550 return 551 } 552 553 func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uint32, overlapped **Overlapped, timeout uint32) (err error) { 554 r1, _, e1 := Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout), 0) 555 if r1 == 0 { 556 if e1 != 0 { 557 err = errnoErr(e1) 558 } else { 559 err = EINVAL 560 } 561 } 562 return 563 } 564 565 func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uint32, overlapped *Overlapped) (err error) { 566 r1, _, e1 := Syscall6(procPostQueuedCompletionStatus.Addr(), 4, uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped)), 0, 0) 567 if r1 == 0 { 568 if e1 != 0 { 569 err = errnoErr(e1) 570 } else { 571 err = EINVAL 572 } 573 } 574 return 575 } 576 577 func CancelIo(s Handle) (err error) { 578 r1, _, e1 := Syscall(procCancelIo.Addr(), 1, uintptr(s), 0, 0) 579 if r1 == 0 { 580 if e1 != 0 { 581 err = errnoErr(e1) 582 } else { 583 err = EINVAL 584 } 585 } 586 return 587 } 588 589 func CancelIoEx(s Handle, o *Overlapped) (err error) { 590 r1, _, e1 := Syscall(procCancelIoEx.Addr(), 2, uintptr(s), uintptr(unsafe.Pointer(o)), 0) 591 if r1 == 0 { 592 if e1 != 0 { 593 err = errnoErr(e1) 594 } else { 595 err = EINVAL 596 } 597 } 598 return 599 } 600 601 func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) { 602 var _p0 uint32 603 if inheritHandles { 604 _p0 = 1 605 } else { 606 _p0 = 0 607 } 608 r1, _, e1 := 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) 609 if r1 == 0 { 610 if e1 != 0 { 611 err = errnoErr(e1) 612 } else { 613 err = EINVAL 614 } 615 } 616 return 617 } 618 619 func OpenProcess(da uint32, inheritHandle bool, pid uint32) (handle Handle, err error) { 620 var _p0 uint32 621 if inheritHandle { 622 _p0 = 1 623 } else { 624 _p0 = 0 625 } 626 r0, _, e1 := Syscall(procOpenProcess.Addr(), 3, uintptr(da), uintptr(_p0), uintptr(pid)) 627 handle = Handle(r0) 628 if handle == 0 { 629 if e1 != 0 { 630 err = errnoErr(e1) 631 } else { 632 err = EINVAL 633 } 634 } 635 return 636 } 637 638 func TerminateProcess(handle Handle, exitcode uint32) (err error) { 639 r1, _, e1 := Syscall(procTerminateProcess.Addr(), 2, uintptr(handle), uintptr(exitcode), 0) 640 if r1 == 0 { 641 if e1 != 0 { 642 err = errnoErr(e1) 643 } else { 644 err = EINVAL 645 } 646 } 647 return 648 } 649 650 func GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) { 651 r1, _, e1 := Syscall(procGetExitCodeProcess.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(exitcode)), 0) 652 if r1 == 0 { 653 if e1 != 0 { 654 err = errnoErr(e1) 655 } else { 656 err = EINVAL 657 } 658 } 659 return 660 } 661 662 func GetStartupInfo(startupInfo *StartupInfo) (err error) { 663 r1, _, e1 := Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0) 664 if r1 == 0 { 665 if e1 != 0 { 666 err = errnoErr(e1) 667 } else { 668 err = EINVAL 669 } 670 } 671 return 672 } 673 674 func GetCurrentProcess() (pseudoHandle Handle, err error) { 675 r0, _, e1 := Syscall(procGetCurrentProcess.Addr(), 0, 0, 0, 0) 676 pseudoHandle = Handle(r0) 677 if pseudoHandle == 0 { 678 if e1 != 0 { 679 err = errnoErr(e1) 680 } else { 681 err = EINVAL 682 } 683 } 684 return 685 } 686 687 func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) { 688 r1, _, e1 := Syscall6(procGetProcessTimes.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)), 0) 689 if r1 == 0 { 690 if e1 != 0 { 691 err = errnoErr(e1) 692 } else { 693 err = EINVAL 694 } 695 } 696 return 697 } 698 699 func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) { 700 var _p0 uint32 701 if bInheritHandle { 702 _p0 = 1 703 } else { 704 _p0 = 0 705 } 706 r1, _, e1 := Syscall9(procDuplicateHandle.Addr(), 7, uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions), 0, 0) 707 if r1 == 0 { 708 if e1 != 0 { 709 err = errnoErr(e1) 710 } else { 711 err = EINVAL 712 } 713 } 714 return 715 } 716 717 func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) { 718 r0, _, e1 := Syscall(procWaitForSingleObject.Addr(), 2, uintptr(handle), uintptr(waitMilliseconds), 0) 719 event = uint32(r0) 720 if event == 0xffffffff { 721 if e1 != 0 { 722 err = errnoErr(e1) 723 } else { 724 err = EINVAL 725 } 726 } 727 return 728 } 729 730 func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) { 731 r0, _, e1 := Syscall(procGetTempPathW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) 732 n = uint32(r0) 733 if n == 0 { 734 if e1 != 0 { 735 err = errnoErr(e1) 736 } else { 737 err = EINVAL 738 } 739 } 740 return 741 } 742 743 func CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) { 744 r1, _, e1 := Syscall6(procCreatePipe.Addr(), 4, uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size), 0, 0) 745 if r1 == 0 { 746 if e1 != 0 { 747 err = errnoErr(e1) 748 } else { 749 err = EINVAL 750 } 751 } 752 return 753 } 754 755 func GetFileType(filehandle Handle) (n uint32, err error) { 756 r0, _, e1 := Syscall(procGetFileType.Addr(), 1, uintptr(filehandle), 0, 0) 757 n = uint32(r0) 758 if n == 0 { 759 if e1 != 0 { 760 err = errnoErr(e1) 761 } else { 762 err = EINVAL 763 } 764 } 765 return 766 } 767 768 func CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) { 769 r1, _, e1 := Syscall6(procCryptAcquireContextW.Addr(), 5, uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags), 0) 770 if r1 == 0 { 771 if e1 != 0 { 772 err = errnoErr(e1) 773 } else { 774 err = EINVAL 775 } 776 } 777 return 778 } 779 780 func CryptReleaseContext(provhandle Handle, flags uint32) (err error) { 781 r1, _, e1 := Syscall(procCryptReleaseContext.Addr(), 2, uintptr(provhandle), uintptr(flags), 0) 782 if r1 == 0 { 783 if e1 != 0 { 784 err = errnoErr(e1) 785 } else { 786 err = EINVAL 787 } 788 } 789 return 790 } 791 792 func CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) { 793 r1, _, e1 := Syscall(procCryptGenRandom.Addr(), 3, uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf))) 794 if r1 == 0 { 795 if e1 != 0 { 796 err = errnoErr(e1) 797 } else { 798 err = EINVAL 799 } 800 } 801 return 802 } 803 804 func GetEnvironmentStrings() (envs *uint16, err error) { 805 r0, _, e1 := Syscall(procGetEnvironmentStringsW.Addr(), 0, 0, 0, 0) 806 envs = (*uint16)(unsafe.Pointer(r0)) 807 if envs == nil { 808 if e1 != 0 { 809 err = errnoErr(e1) 810 } else { 811 err = EINVAL 812 } 813 } 814 return 815 } 816 817 func FreeEnvironmentStrings(envs *uint16) (err error) { 818 r1, _, e1 := Syscall(procFreeEnvironmentStringsW.Addr(), 1, uintptr(unsafe.Pointer(envs)), 0, 0) 819 if r1 == 0 { 820 if e1 != 0 { 821 err = errnoErr(e1) 822 } else { 823 err = EINVAL 824 } 825 } 826 return 827 } 828 829 func GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) { 830 r0, _, e1 := Syscall(procGetEnvironmentVariableW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size)) 831 n = uint32(r0) 832 if n == 0 { 833 if e1 != 0 { 834 err = errnoErr(e1) 835 } else { 836 err = EINVAL 837 } 838 } 839 return 840 } 841 842 func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { 843 r1, _, e1 := Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0) 844 if r1 == 0 { 845 if e1 != 0 { 846 err = errnoErr(e1) 847 } else { 848 err = EINVAL 849 } 850 } 851 return 852 } 853 854 func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { 855 r1, _, e1 := Syscall6(procSetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) 856 if r1 == 0 { 857 if e1 != 0 { 858 err = errnoErr(e1) 859 } else { 860 err = EINVAL 861 } 862 } 863 return 864 } 865 866 func GetFileAttributes(name *uint16) (attrs uint32, err error) { 867 r0, _, e1 := Syscall(procGetFileAttributesW.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) 868 attrs = uint32(r0) 869 if attrs == INVALID_FILE_ATTRIBUTES { 870 if e1 != 0 { 871 err = errnoErr(e1) 872 } else { 873 err = EINVAL 874 } 875 } 876 return 877 } 878 879 func SetFileAttributes(name *uint16, attrs uint32) (err error) { 880 r1, _, e1 := Syscall(procSetFileAttributesW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(attrs), 0) 881 if r1 == 0 { 882 if e1 != 0 { 883 err = errnoErr(e1) 884 } else { 885 err = EINVAL 886 } 887 } 888 return 889 } 890 891 func GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) { 892 r1, _, e1 := Syscall(procGetFileAttributesExW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info))) 893 if r1 == 0 { 894 if e1 != 0 { 895 err = errnoErr(e1) 896 } else { 897 err = EINVAL 898 } 899 } 900 return 901 } 902 903 func GetCommandLine() (cmd *uint16) { 904 r0, _, _ := Syscall(procGetCommandLineW.Addr(), 0, 0, 0, 0) 905 cmd = (*uint16)(unsafe.Pointer(r0)) 906 return 907 } 908 909 func CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) { 910 r0, _, e1 := Syscall(procCommandLineToArgvW.Addr(), 2, uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)), 0) 911 argv = (*[8192]*[8192]uint16)(unsafe.Pointer(r0)) 912 if argv == nil { 913 if e1 != 0 { 914 err = errnoErr(e1) 915 } else { 916 err = EINVAL 917 } 918 } 919 return 920 } 921 922 func LocalFree(hmem Handle) (handle Handle, err error) { 923 r0, _, e1 := Syscall(procLocalFree.Addr(), 1, uintptr(hmem), 0, 0) 924 handle = Handle(r0) 925 if handle != 0 { 926 if e1 != 0 { 927 err = errnoErr(e1) 928 } else { 929 err = EINVAL 930 } 931 } 932 return 933 } 934 935 func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) { 936 r1, _, e1 := Syscall(procSetHandleInformation.Addr(), 3, uintptr(handle), uintptr(mask), uintptr(flags)) 937 if r1 == 0 { 938 if e1 != 0 { 939 err = errnoErr(e1) 940 } else { 941 err = EINVAL 942 } 943 } 944 return 945 } 946 947 func FlushFileBuffers(handle Handle) (err error) { 948 r1, _, e1 := Syscall(procFlushFileBuffers.Addr(), 1, uintptr(handle), 0, 0) 949 if r1 == 0 { 950 if e1 != 0 { 951 err = errnoErr(e1) 952 } else { 953 err = EINVAL 954 } 955 } 956 return 957 } 958 959 func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) { 960 r0, _, e1 := Syscall6(procGetFullPathNameW.Addr(), 4, uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname)), 0, 0) 961 n = uint32(r0) 962 if n == 0 { 963 if e1 != 0 { 964 err = errnoErr(e1) 965 } else { 966 err = EINVAL 967 } 968 } 969 return 970 } 971 972 func GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) { 973 r0, _, e1 := Syscall(procGetLongPathNameW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen)) 974 n = uint32(r0) 975 if n == 0 { 976 if e1 != 0 { 977 err = errnoErr(e1) 978 } else { 979 err = EINVAL 980 } 981 } 982 return 983 } 984 985 func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) { 986 r0, _, e1 := Syscall(procGetShortPathNameW.Addr(), 3, uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen)) 987 n = uint32(r0) 988 if n == 0 { 989 if e1 != 0 { 990 err = errnoErr(e1) 991 } else { 992 err = EINVAL 993 } 994 } 995 return 996 } 997 998 func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) { 999 r0, _, e1 := Syscall6(procCreateFileMappingW.Addr(), 6, uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name))) 1000 handle = Handle(r0) 1001 if handle == 0 { 1002 if e1 != 0 { 1003 err = errnoErr(e1) 1004 } else { 1005 err = EINVAL 1006 } 1007 } 1008 return 1009 } 1010 1011 func MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) { 1012 r0, _, e1 := Syscall6(procMapViewOfFile.Addr(), 5, uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length), 0) 1013 addr = uintptr(r0) 1014 if addr == 0 { 1015 if e1 != 0 { 1016 err = errnoErr(e1) 1017 } else { 1018 err = EINVAL 1019 } 1020 } 1021 return 1022 } 1023 1024 func UnmapViewOfFile(addr uintptr) (err error) { 1025 r1, _, e1 := Syscall(procUnmapViewOfFile.Addr(), 1, uintptr(addr), 0, 0) 1026 if r1 == 0 { 1027 if e1 != 0 { 1028 err = errnoErr(e1) 1029 } else { 1030 err = EINVAL 1031 } 1032 } 1033 return 1034 } 1035 1036 func FlushViewOfFile(addr uintptr, length uintptr) (err error) { 1037 r1, _, e1 := Syscall(procFlushViewOfFile.Addr(), 2, uintptr(addr), uintptr(length), 0) 1038 if r1 == 0 { 1039 if e1 != 0 { 1040 err = errnoErr(e1) 1041 } else { 1042 err = EINVAL 1043 } 1044 } 1045 return 1046 } 1047 1048 func VirtualLock(addr uintptr, length uintptr) (err error) { 1049 r1, _, e1 := Syscall(procVirtualLock.Addr(), 2, uintptr(addr), uintptr(length), 0) 1050 if r1 == 0 { 1051 if e1 != 0 { 1052 err = errnoErr(e1) 1053 } else { 1054 err = EINVAL 1055 } 1056 } 1057 return 1058 } 1059 1060 func VirtualUnlock(addr uintptr, length uintptr) (err error) { 1061 r1, _, e1 := Syscall(procVirtualUnlock.Addr(), 2, uintptr(addr), uintptr(length), 0) 1062 if r1 == 0 { 1063 if e1 != 0 { 1064 err = errnoErr(e1) 1065 } else { 1066 err = EINVAL 1067 } 1068 } 1069 return 1070 } 1071 1072 func TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) { 1073 r1, _, e1 := Syscall9(procTransmitFile.Addr(), 7, uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags), 0, 0) 1074 if r1 == 0 { 1075 if e1 != 0 { 1076 err = errnoErr(e1) 1077 } else { 1078 err = EINVAL 1079 } 1080 } 1081 return 1082 } 1083 1084 func ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { 1085 var _p0 uint32 1086 if watchSubTree { 1087 _p0 = 1 1088 } else { 1089 _p0 = 0 1090 } 1091 r1, _, e1 := 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) 1092 if r1 == 0 { 1093 if e1 != 0 { 1094 err = errnoErr(e1) 1095 } else { 1096 err = EINVAL 1097 } 1098 } 1099 return 1100 } 1101 1102 func CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) { 1103 r0, _, e1 := Syscall(procCertOpenSystemStoreW.Addr(), 2, uintptr(hprov), uintptr(unsafe.Pointer(name)), 0) 1104 store = Handle(r0) 1105 if store == 0 { 1106 if e1 != 0 { 1107 err = errnoErr(e1) 1108 } else { 1109 err = EINVAL 1110 } 1111 } 1112 return 1113 } 1114 1115 func CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) { 1116 r0, _, e1 := Syscall6(procCertOpenStore.Addr(), 5, uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para), 0) 1117 handle = Handle(r0) 1118 if handle == InvalidHandle { 1119 if e1 != 0 { 1120 err = errnoErr(e1) 1121 } else { 1122 err = EINVAL 1123 } 1124 } 1125 return 1126 } 1127 1128 func CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) { 1129 r0, _, e1 := Syscall(procCertEnumCertificatesInStore.Addr(), 2, uintptr(store), uintptr(unsafe.Pointer(prevContext)), 0) 1130 context = (*CertContext)(unsafe.Pointer(r0)) 1131 if context == nil { 1132 if e1 != 0 { 1133 err = errnoErr(e1) 1134 } else { 1135 err = EINVAL 1136 } 1137 } 1138 return 1139 } 1140 1141 func CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) { 1142 r1, _, e1 := Syscall6(procCertAddCertificateContextToStore.Addr(), 4, uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext)), 0, 0) 1143 if r1 == 0 { 1144 if e1 != 0 { 1145 err = errnoErr(e1) 1146 } else { 1147 err = EINVAL 1148 } 1149 } 1150 return 1151 } 1152 1153 func CertCloseStore(store Handle, flags uint32) (err error) { 1154 r1, _, e1 := Syscall(procCertCloseStore.Addr(), 2, uintptr(store), uintptr(flags), 0) 1155 if r1 == 0 { 1156 if e1 != 0 { 1157 err = errnoErr(e1) 1158 } else { 1159 err = EINVAL 1160 } 1161 } 1162 return 1163 } 1164 1165 func CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) { 1166 r1, _, e1 := 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) 1167 if r1 == 0 { 1168 if e1 != 0 { 1169 err = errnoErr(e1) 1170 } else { 1171 err = EINVAL 1172 } 1173 } 1174 return 1175 } 1176 1177 func CertFreeCertificateChain(ctx *CertChainContext) { 1178 Syscall(procCertFreeCertificateChain.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) 1179 return 1180 } 1181 1182 func CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) { 1183 r0, _, e1 := Syscall(procCertCreateCertificateContext.Addr(), 3, uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen)) 1184 context = (*CertContext)(unsafe.Pointer(r0)) 1185 if context == nil { 1186 if e1 != 0 { 1187 err = errnoErr(e1) 1188 } else { 1189 err = EINVAL 1190 } 1191 } 1192 return 1193 } 1194 1195 func CertFreeCertificateContext(ctx *CertContext) (err error) { 1196 r1, _, e1 := Syscall(procCertFreeCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) 1197 if r1 == 0 { 1198 if e1 != 0 { 1199 err = errnoErr(e1) 1200 } else { 1201 err = EINVAL 1202 } 1203 } 1204 return 1205 } 1206 1207 func CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) { 1208 r1, _, e1 := Syscall6(procCertVerifyCertificateChainPolicy.Addr(), 4, uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status)), 0, 0) 1209 if r1 == 0 { 1210 if e1 != 0 { 1211 err = errnoErr(e1) 1212 } else { 1213 err = EINVAL 1214 } 1215 } 1216 return 1217 } 1218 1219 func RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) { 1220 r0, _, _ := Syscall6(procRegOpenKeyExW.Addr(), 5, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result)), 0) 1221 if r0 != 0 { 1222 regerrno = Errno(r0) 1223 } 1224 return 1225 } 1226 1227 func RegCloseKey(key Handle) (regerrno error) { 1228 r0, _, _ := Syscall(procRegCloseKey.Addr(), 1, uintptr(key), 0, 0) 1229 if r0 != 0 { 1230 regerrno = Errno(r0) 1231 } 1232 return 1233 } 1234 1235 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) { 1236 r0, _, _ := 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))) 1237 if r0 != 0 { 1238 regerrno = Errno(r0) 1239 } 1240 return 1241 } 1242 1243 func RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) { 1244 r0, _, _ := 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) 1245 if r0 != 0 { 1246 regerrno = Errno(r0) 1247 } 1248 return 1249 } 1250 1251 func RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) { 1252 r0, _, _ := 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))) 1253 if r0 != 0 { 1254 regerrno = Errno(r0) 1255 } 1256 return 1257 } 1258 1259 func getCurrentProcessId() (pid uint32) { 1260 r0, _, _ := Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0) 1261 pid = uint32(r0) 1262 return 1263 } 1264 1265 func GetConsoleMode(console Handle, mode *uint32) (err error) { 1266 r1, _, e1 := Syscall(procGetConsoleMode.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(mode)), 0) 1267 if r1 == 0 { 1268 if e1 != 0 { 1269 err = errnoErr(e1) 1270 } else { 1271 err = EINVAL 1272 } 1273 } 1274 return 1275 } 1276 1277 func WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) { 1278 r1, _, e1 := Syscall6(procWriteConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)), 0) 1279 if r1 == 0 { 1280 if e1 != 0 { 1281 err = errnoErr(e1) 1282 } else { 1283 err = EINVAL 1284 } 1285 } 1286 return 1287 } 1288 1289 func ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) { 1290 r1, _, e1 := Syscall6(procReadConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl)), 0) 1291 if r1 == 0 { 1292 if e1 != 0 { 1293 err = errnoErr(e1) 1294 } else { 1295 err = EINVAL 1296 } 1297 } 1298 return 1299 } 1300 1301 func CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) { 1302 r0, _, e1 := Syscall(procCreateToolhelp32Snapshot.Addr(), 2, uintptr(flags), uintptr(processId), 0) 1303 handle = Handle(r0) 1304 if handle == InvalidHandle { 1305 if e1 != 0 { 1306 err = errnoErr(e1) 1307 } else { 1308 err = EINVAL 1309 } 1310 } 1311 return 1312 } 1313 1314 func Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) { 1315 r1, _, e1 := Syscall(procProcess32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) 1316 if r1 == 0 { 1317 if e1 != 0 { 1318 err = errnoErr(e1) 1319 } else { 1320 err = EINVAL 1321 } 1322 } 1323 return 1324 } 1325 1326 func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) { 1327 r1, _, e1 := Syscall(procProcess32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) 1328 if r1 == 0 { 1329 if e1 != 0 { 1330 err = errnoErr(e1) 1331 } else { 1332 err = EINVAL 1333 } 1334 } 1335 return 1336 } 1337 1338 func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) { 1339 r1, _, e1 := 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) 1340 if r1 == 0 { 1341 if e1 != 0 { 1342 err = errnoErr(e1) 1343 } else { 1344 err = EINVAL 1345 } 1346 } 1347 return 1348 } 1349 1350 func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) { 1351 r1, _, e1 := Syscall(procCreateSymbolicLinkW.Addr(), 3, uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags)) 1352 if r1&0xff == 0 { 1353 if e1 != 0 { 1354 err = errnoErr(e1) 1355 } else { 1356 err = EINVAL 1357 } 1358 } 1359 return 1360 } 1361 1362 func CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) { 1363 r1, _, e1 := Syscall(procCreateHardLinkW.Addr(), 3, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved)) 1364 if r1&0xff == 0 { 1365 if e1 != 0 { 1366 err = errnoErr(e1) 1367 } else { 1368 err = EINVAL 1369 } 1370 } 1371 return 1372 } 1373 1374 func WSAStartup(verreq uint32, data *WSAData) (sockerr error) { 1375 r0, _, _ := Syscall(procWSAStartup.Addr(), 2, uintptr(verreq), uintptr(unsafe.Pointer(data)), 0) 1376 if r0 != 0 { 1377 sockerr = Errno(r0) 1378 } 1379 return 1380 } 1381 1382 func WSACleanup() (err error) { 1383 r1, _, e1 := Syscall(procWSACleanup.Addr(), 0, 0, 0, 0) 1384 if r1 == socket_error { 1385 if e1 != 0 { 1386 err = errnoErr(e1) 1387 } else { 1388 err = EINVAL 1389 } 1390 } 1391 return 1392 } 1393 1394 func WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { 1395 r1, _, e1 := 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)) 1396 if r1 == socket_error { 1397 if e1 != 0 { 1398 err = errnoErr(e1) 1399 } else { 1400 err = EINVAL 1401 } 1402 } 1403 return 1404 } 1405 1406 func socket(af int32, typ int32, protocol int32) (handle Handle, err error) { 1407 r0, _, e1 := Syscall(procsocket.Addr(), 3, uintptr(af), uintptr(typ), uintptr(protocol)) 1408 handle = Handle(r0) 1409 if handle == InvalidHandle { 1410 if e1 != 0 { 1411 err = errnoErr(e1) 1412 } else { 1413 err = EINVAL 1414 } 1415 } 1416 return 1417 } 1418 1419 func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) { 1420 r1, _, e1 := Syscall6(procsetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen), 0) 1421 if r1 == socket_error { 1422 if e1 != 0 { 1423 err = errnoErr(e1) 1424 } else { 1425 err = EINVAL 1426 } 1427 } 1428 return 1429 } 1430 1431 func Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) { 1432 r1, _, e1 := Syscall6(procgetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen)), 0) 1433 if r1 == socket_error { 1434 if e1 != 0 { 1435 err = errnoErr(e1) 1436 } else { 1437 err = EINVAL 1438 } 1439 } 1440 return 1441 } 1442 1443 func bind(s Handle, name unsafe.Pointer, namelen int32) (err error) { 1444 r1, _, e1 := Syscall(procbind.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) 1445 if r1 == socket_error { 1446 if e1 != 0 { 1447 err = errnoErr(e1) 1448 } else { 1449 err = EINVAL 1450 } 1451 } 1452 return 1453 } 1454 1455 func connect(s Handle, name unsafe.Pointer, namelen int32) (err error) { 1456 r1, _, e1 := Syscall(procconnect.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) 1457 if r1 == socket_error { 1458 if e1 != 0 { 1459 err = errnoErr(e1) 1460 } else { 1461 err = EINVAL 1462 } 1463 } 1464 return 1465 } 1466 1467 func getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { 1468 r1, _, e1 := Syscall(procgetsockname.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) 1469 if r1 == socket_error { 1470 if e1 != 0 { 1471 err = errnoErr(e1) 1472 } else { 1473 err = EINVAL 1474 } 1475 } 1476 return 1477 } 1478 1479 func getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { 1480 r1, _, e1 := Syscall(procgetpeername.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) 1481 if r1 == socket_error { 1482 if e1 != 0 { 1483 err = errnoErr(e1) 1484 } else { 1485 err = EINVAL 1486 } 1487 } 1488 return 1489 } 1490 1491 func listen(s Handle, backlog int32) (err error) { 1492 r1, _, e1 := Syscall(proclisten.Addr(), 2, uintptr(s), uintptr(backlog), 0) 1493 if r1 == socket_error { 1494 if e1 != 0 { 1495 err = errnoErr(e1) 1496 } else { 1497 err = EINVAL 1498 } 1499 } 1500 return 1501 } 1502 1503 func shutdown(s Handle, how int32) (err error) { 1504 r1, _, e1 := Syscall(procshutdown.Addr(), 2, uintptr(s), uintptr(how), 0) 1505 if r1 == socket_error { 1506 if e1 != 0 { 1507 err = errnoErr(e1) 1508 } else { 1509 err = EINVAL 1510 } 1511 } 1512 return 1513 } 1514 1515 func Closesocket(s Handle) (err error) { 1516 r1, _, e1 := Syscall(procclosesocket.Addr(), 1, uintptr(s), 0, 0) 1517 if r1 == socket_error { 1518 if e1 != 0 { 1519 err = errnoErr(e1) 1520 } else { 1521 err = EINVAL 1522 } 1523 } 1524 return 1525 } 1526 1527 func AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) { 1528 r1, _, e1 := 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) 1529 if r1 == 0 { 1530 if e1 != 0 { 1531 err = errnoErr(e1) 1532 } else { 1533 err = EINVAL 1534 } 1535 } 1536 return 1537 } 1538 1539 func GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) { 1540 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) 1541 return 1542 } 1543 1544 func WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) { 1545 r1, _, e1 := 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) 1546 if r1 == socket_error { 1547 if e1 != 0 { 1548 err = errnoErr(e1) 1549 } else { 1550 err = EINVAL 1551 } 1552 } 1553 return 1554 } 1555 1556 func WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) { 1557 r1, _, e1 := 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) 1558 if r1 == socket_error { 1559 if e1 != 0 { 1560 err = errnoErr(e1) 1561 } else { 1562 err = EINVAL 1563 } 1564 } 1565 return 1566 } 1567 1568 func WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) { 1569 r1, _, e1 := 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))) 1570 if r1 == socket_error { 1571 if e1 != 0 { 1572 err = errnoErr(e1) 1573 } else { 1574 err = EINVAL 1575 } 1576 } 1577 return 1578 } 1579 1580 func WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) { 1581 r1, _, e1 := 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))) 1582 if r1 == socket_error { 1583 if e1 != 0 { 1584 err = errnoErr(e1) 1585 } else { 1586 err = EINVAL 1587 } 1588 } 1589 return 1590 } 1591 1592 func GetHostByName(name string) (h *Hostent, err error) { 1593 var _p0 *byte 1594 _p0, err = BytePtrFromString(name) 1595 if err != nil { 1596 return 1597 } 1598 return _GetHostByName(_p0) 1599 } 1600 1601 func _GetHostByName(name *byte) (h *Hostent, err error) { 1602 r0, _, e1 := Syscall(procgethostbyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) 1603 h = (*Hostent)(unsafe.Pointer(r0)) 1604 if h == nil { 1605 if e1 != 0 { 1606 err = errnoErr(e1) 1607 } else { 1608 err = EINVAL 1609 } 1610 } 1611 return 1612 } 1613 1614 func GetServByName(name string, proto string) (s *Servent, err error) { 1615 var _p0 *byte 1616 _p0, err = BytePtrFromString(name) 1617 if err != nil { 1618 return 1619 } 1620 var _p1 *byte 1621 _p1, err = BytePtrFromString(proto) 1622 if err != nil { 1623 return 1624 } 1625 return _GetServByName(_p0, _p1) 1626 } 1627 1628 func _GetServByName(name *byte, proto *byte) (s *Servent, err error) { 1629 r0, _, e1 := Syscall(procgetservbyname.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto)), 0) 1630 s = (*Servent)(unsafe.Pointer(r0)) 1631 if s == nil { 1632 if e1 != 0 { 1633 err = errnoErr(e1) 1634 } else { 1635 err = EINVAL 1636 } 1637 } 1638 return 1639 } 1640 1641 func Ntohs(netshort uint16) (u uint16) { 1642 r0, _, _ := Syscall(procntohs.Addr(), 1, uintptr(netshort), 0, 0) 1643 u = uint16(r0) 1644 return 1645 } 1646 1647 func GetProtoByName(name string) (p *Protoent, err error) { 1648 var _p0 *byte 1649 _p0, err = BytePtrFromString(name) 1650 if err != nil { 1651 return 1652 } 1653 return _GetProtoByName(_p0) 1654 } 1655 1656 func _GetProtoByName(name *byte) (p *Protoent, err error) { 1657 r0, _, e1 := Syscall(procgetprotobyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) 1658 p = (*Protoent)(unsafe.Pointer(r0)) 1659 if p == nil { 1660 if e1 != 0 { 1661 err = errnoErr(e1) 1662 } else { 1663 err = EINVAL 1664 } 1665 } 1666 return 1667 } 1668 1669 func DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { 1670 var _p0 *uint16 1671 _p0, status = UTF16PtrFromString(name) 1672 if status != nil { 1673 return 1674 } 1675 return _DnsQuery(_p0, qtype, options, extra, qrs, pr) 1676 } 1677 1678 func _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { 1679 r0, _, _ := 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))) 1680 if r0 != 0 { 1681 status = Errno(r0) 1682 } 1683 return 1684 } 1685 1686 func DnsRecordListFree(rl *DNSRecord, freetype uint32) { 1687 Syscall(procDnsRecordListFree.Addr(), 2, uintptr(unsafe.Pointer(rl)), uintptr(freetype), 0) 1688 return 1689 } 1690 1691 func DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) { 1692 r0, _, _ := Syscall(procDnsNameCompare_W.Addr(), 2, uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2)), 0) 1693 same = r0 != 0 1694 return 1695 } 1696 1697 func GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) { 1698 r0, _, _ := Syscall6(procGetAddrInfoW.Addr(), 4, uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result)), 0, 0) 1699 if r0 != 0 { 1700 sockerr = Errno(r0) 1701 } 1702 return 1703 } 1704 1705 func FreeAddrInfoW(addrinfo *AddrinfoW) { 1706 Syscall(procFreeAddrInfoW.Addr(), 1, uintptr(unsafe.Pointer(addrinfo)), 0, 0) 1707 return 1708 } 1709 1710 func GetIfEntry(pIfRow *MibIfRow) (errcode error) { 1711 r0, _, _ := Syscall(procGetIfEntry.Addr(), 1, uintptr(unsafe.Pointer(pIfRow)), 0, 0) 1712 if r0 != 0 { 1713 errcode = Errno(r0) 1714 } 1715 return 1716 } 1717 1718 func GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) { 1719 r0, _, _ := Syscall(procGetAdaptersInfo.Addr(), 2, uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol)), 0) 1720 if r0 != 0 { 1721 errcode = Errno(r0) 1722 } 1723 return 1724 } 1725 1726 func SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) { 1727 r1, _, e1 := Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(handle), uintptr(flags), 0) 1728 if r1 == 0 { 1729 if e1 != 0 { 1730 err = errnoErr(e1) 1731 } else { 1732 err = EINVAL 1733 } 1734 } 1735 return 1736 } 1737 1738 func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) { 1739 r0, _, e1 := Syscall(procWSAEnumProtocolsW.Addr(), 3, uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength))) 1740 n = int32(r0) 1741 if n == -1 { 1742 if e1 != 0 { 1743 err = errnoErr(e1) 1744 } else { 1745 err = EINVAL 1746 } 1747 } 1748 return 1749 } 1750 1751 func TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) { 1752 r1, _, e1 := Syscall6(procTranslateNameW.Addr(), 5, uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize)), 0) 1753 if r1&0xff == 0 { 1754 if e1 != 0 { 1755 err = errnoErr(e1) 1756 } else { 1757 err = EINVAL 1758 } 1759 } 1760 return 1761 } 1762 1763 func GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) { 1764 r1, _, e1 := Syscall(procGetUserNameExW.Addr(), 3, uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize))) 1765 if r1&0xff == 0 { 1766 if e1 != 0 { 1767 err = errnoErr(e1) 1768 } else { 1769 err = EINVAL 1770 } 1771 } 1772 return 1773 } 1774 1775 func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) { 1776 r0, _, _ := Syscall6(procNetUserGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)), 0, 0) 1777 if r0 != 0 { 1778 neterr = Errno(r0) 1779 } 1780 return 1781 } 1782 1783 func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) { 1784 r0, _, _ := Syscall(procNetGetJoinInformation.Addr(), 3, uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType))) 1785 if r0 != 0 { 1786 neterr = Errno(r0) 1787 } 1788 return 1789 } 1790 1791 func NetApiBufferFree(buf *byte) (neterr error) { 1792 r0, _, _ := Syscall(procNetApiBufferFree.Addr(), 1, uintptr(unsafe.Pointer(buf)), 0, 0) 1793 if r0 != 0 { 1794 neterr = Errno(r0) 1795 } 1796 return 1797 } 1798 1799 func LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { 1800 r1, _, e1 := 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) 1801 if r1 == 0 { 1802 if e1 != 0 { 1803 err = errnoErr(e1) 1804 } else { 1805 err = EINVAL 1806 } 1807 } 1808 return 1809 } 1810 1811 func LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { 1812 r1, _, e1 := 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) 1813 if r1 == 0 { 1814 if e1 != 0 { 1815 err = errnoErr(e1) 1816 } else { 1817 err = EINVAL 1818 } 1819 } 1820 return 1821 } 1822 1823 func ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) { 1824 r1, _, e1 := Syscall(procConvertSidToStringSidW.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid)), 0) 1825 if r1 == 0 { 1826 if e1 != 0 { 1827 err = errnoErr(e1) 1828 } else { 1829 err = EINVAL 1830 } 1831 } 1832 return 1833 } 1834 1835 func ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) { 1836 r1, _, e1 := Syscall(procConvertStringSidToSidW.Addr(), 2, uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid)), 0) 1837 if r1 == 0 { 1838 if e1 != 0 { 1839 err = errnoErr(e1) 1840 } else { 1841 err = EINVAL 1842 } 1843 } 1844 return 1845 } 1846 1847 func GetLengthSid(sid *SID) (len uint32) { 1848 r0, _, _ := Syscall(procGetLengthSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) 1849 len = uint32(r0) 1850 return 1851 } 1852 1853 func CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) { 1854 r1, _, e1 := Syscall(procCopySid.Addr(), 3, uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid))) 1855 if r1 == 0 { 1856 if e1 != 0 { 1857 err = errnoErr(e1) 1858 } else { 1859 err = EINVAL 1860 } 1861 } 1862 return 1863 } 1864 1865 func OpenProcessToken(h Handle, access uint32, token *Token) (err error) { 1866 r1, _, e1 := Syscall(procOpenProcessToken.Addr(), 3, uintptr(h), uintptr(access), uintptr(unsafe.Pointer(token))) 1867 if r1 == 0 { 1868 if e1 != 0 { 1869 err = errnoErr(e1) 1870 } else { 1871 err = EINVAL 1872 } 1873 } 1874 return 1875 } 1876 1877 func GetTokenInformation(t Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) { 1878 r1, _, e1 := Syscall6(procGetTokenInformation.Addr(), 5, uintptr(t), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)), 0) 1879 if r1 == 0 { 1880 if e1 != 0 { 1881 err = errnoErr(e1) 1882 } else { 1883 err = EINVAL 1884 } 1885 } 1886 return 1887 } 1888 1889 func GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) { 1890 r1, _, e1 := Syscall(procGetUserProfileDirectoryW.Addr(), 3, uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen))) 1891 if r1 == 0 { 1892 if e1 != 0 { 1893 err = errnoErr(e1) 1894 } else { 1895 err = EINVAL 1896 } 1897 } 1898 return 1899 }