IWMSServerCurrentCounters::get_AllCounters

The get_AllCounters method retrieves an array that contains all of the counters supported by the interface.

HRESULT get_AllCounters(
  SAFEARRAY(VARIANT)*  psaCounters
);

Arguments

psaCounters

[out] Pointer to a VARIANT array containing the counters.

Return Value

If the method succeeds, it returns S_OK. If it fails, it returns an HRESULT error code.

Return code

Number

Description

E_POINTER

0x80004003

Indicates that psaCounters is a NULL pointer argument.

Remarks

The array is two-dimensional. The first element in each row contains the name of the counter property, and the second element in each row contains the value. The get_AllCounters method is used to speed up counter retrieval during remote administration, by making one call instead of multiple calls to retrieve multiple counter properties.

For more information about the counters returned in the array, see the following methods.

Method

Description

get_CacheDownloads

Retrieves the number of streams being sent to a cache.

get_ConnectedPlayers

Retrieves the number of players connected to the server.

get_ConnectionQueue

Retrieves the current number of players in the queue to connect to the server.

get_ConnectionRate

Retrieves the number of players connecting per second.

get_FileReadRate

Retrieves the current bandwidth consumed by file read operations.

get_IncomingBandwidth

Retrieves the current bandwidth allocated for incoming connections.

get_LateReadRate

Retrieves the number of late read operations per second.

get_LateSendRate

Retrieves the number of late send operations per second.

get_OutgoingDistributionAllocatedBandwidth

Retrieves the bandwidth that has been allocated for distribution connections.

get_OutgoingDistributionConnections

Retrieves the number of server distribution connections.

get_OutgoingDistributionSendRate

Retrieves the rate, in Kbps, at which content is being sent to distribution connections.

get_PlayerAllocatedBandwidth

Retrieves the bandwidth allocated for player connections.

get_PlayerSendRate

Retrieves the rate, in Kbps, at which content is being sent to players.

get_StreamErrorRate

Retrieves the number of dropped packets per second.

get_StreamingHTTPPlayers

Retrieves the total number of players receiving streamed content using the HTTP protocol.

get_StreamingMMSPlayers

Retrieves the total number of players receiving streamed content using the MMS protocol. (The MMS protocol is not supported in Windows Server 2008 operating systems.)

get_StreamingPlayers

Retrieves the number of players receiving streamed content.

get_StreamingRTSPPlayers

Retrieves the number of players receiving streamed content using the RTSP protocol.

get_StreamingUDPPlayers

Retrieves the number of players receiving streamed content using the User Datagram Protocol (UDP).

get_UDPResendRequestsRate

Retrieves the number of User Datagram Protocol (UDP) resend requests per second received by the server.

get_UDPResendsSentRate

Retrieves the number of UDP resend requests per second processed by the server.

Example

#include <windows.h>
#include <atlbase.h>    // Includes CComVariant.
#include "wmsserver.h"

// Declare variables and interfaces.
IWMSServer                  *pServer;
IWMSServerCurrentCounters   *pCurrentCounters;

HRESULT         hr;
SAFEARRAY       *psaAllCounters;
CComVariant     varIndex;
CComVariant     varData;
long            xMin, xMax;
long            yMin, yMax;
long            lArrayIndex[2];

// Initialize the COM library and retrieve a pointer
// to an IWMSServer interface.
hr = CoInitialize(NULL);
hr = CoCreateInstance(CLSID_WMSServer,
                      NULL,
                      CLSCTX_ALL,
                      IID_IWMSServer,
                      (void **)&pServer);
if (FAILED(hr)) goto EXIT;
hr = pServer->get_CurrentCounters(&pCurrentCounters);
if (FAILED(hr)) goto EXIT;

// Retrieve an array of all the counters in this interface.
hr = pCurrentCounters->get_AllCounters(&psaAllCounters);
if (FAILED(hr)) goto EXIT;

// Retrieve the upper and lower bounds of the
// rows in the array.
hr = SafeArrayGetLBound(psaAllCounters, 1, &xMin);
if (FAILED(hr)) goto EXIT;
hr = SafeArrayGetUBound(psaAllCounters, 1, &xMax);
if (FAILED(hr)) goto EXIT;

// Retrieve the upper and lower bounds of the
// columns in the array.
hr = SafeArrayGetLBound(psaAllCounters, 2, &yMin);
if (FAILED(hr)) goto EXIT;
hr = SafeArrayGetUBound(psaAllCounters, 2, &yMax);
if (FAILED(hr)) goto EXIT;

// Process each array element.
for (long y = xMin; y <= xMax; y++)
{
    for (long z = yMin; z <= yMax; z++)
    {
        // Retrieve the next element in the array
        lArrayIndex[0] = y;
        lArrayIndex[1] = z;
        hr = SafeArrayGetElement(psaAllCounters, 
                                 lArrayIndex,
                                 &varData);
        if (FAILED(hr)) goto EXIT;

        if (varData.vt == VT_BSTR)
            // TODO: Handle counter names.

        if (varData.vt == VT_I4)
            // TODO: Handle counter values.
    }
}

EXIT:
    // TODO: Release temporary COM objects and uninitialize COM.

Requirements

Header: wmsserver.h.

Library: WMSServerTypeLib.dll.

Platform: Windows Server 2003 family, Windows Server 2008 family.

Note

   Some counters are not available in the Windows Server 2003 family.

See Also

Reference

IWMSServerCurrentCounters Interface