code: func sysCredRead(targetName string, typ sysCRED_TYPE) (*Credential, error) {
  	var pcred *sysCREDENTIAL
  	targetNamePtr, _ := syscall.UTF16PtrFromString(targetName)
  	ret, _, err := procCredRead.Call(
  		uintptr(unsafe.Pointer(targetNamePtr)),
  		uintptr(typ),
  		0,
  		uintptr(unsafe.Pointer(&pcred)),
  	)
  	if ret == 0 {
  		return nil, err
  	}
  	defer procCredFree.Call(uintptr(unsafe.Pointer(pcred)))
  
  	return sysToCredential(pcred), nil
  }
docs: // http://msdn.microsoft.com/en-us/library/windows/desktop/aa374804(v=vs.85).aspx