chromium/chrome/browser/net/service_providers_win.h

// Copyright 2010 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_NET_SERVICE_PROVIDERS_WIN_H_
#define CHROME_BROWSER_NET_SERVICE_PROVIDERS_WIN_H_

#include <string>
#include <vector>

struct WinsockNamespaceProvider {
  std::wstring name;
  int version;
  bool active;
  int type;
};
using WinsockNamespaceProviderList = std::vector<WinsockNamespaceProvider>;

struct WinsockLayeredServiceProvider {
  WinsockLayeredServiceProvider();
  WinsockLayeredServiceProvider(const WinsockLayeredServiceProvider& other);
  ~WinsockLayeredServiceProvider();

  std::wstring name;
  std::wstring path;
  int version;
  int chain_length;
  int socket_type;
  int socket_protocol;
};
using WinsockLayeredServiceProviderList =
    std::vector<WinsockLayeredServiceProvider>;

// Returns all the Winsock namespace providers.
void GetWinsockNamespaceProviders(WinsockNamespaceProviderList* namespace_list);

// Returns all the Winsock layered service providers and their paths.
void GetWinsockLayeredServiceProviders(
    WinsockLayeredServiceProviderList* service_list);

#endif  // CHROME_BROWSER_NET_SERVICE_PROVIDERS_WIN_H_