perflibv2

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// Syntax UUID
	PerflibV2SyntaxUUID = &uuid.UUID{TimeLow: 0xda5a86c5, TimeMid: 0x12c2, TimeHiAndVersion: 0x4943, ClockSeqHiAndReserved: 0xab, ClockSeqLow: 0x30, Node: [6]uint8{0x7f, 0x74, 0xa8, 0x13, 0xd8, 0x53}}
	// Syntax ID
	PerflibV2SyntaxV1_0 = &dcerpc.SyntaxID{IfUUID: PerflibV2SyntaxUUID, IfVersionMajor: 1, IfVersionMinor: 0}
)
View Source
var (
	// import guard
	GoPackage = "pcq"
)

Functions

func NewPerflibV2ServerHandle

func NewPerflibV2ServerHandle(o PerflibV2Server) dcerpc.ServerHandle

func PerflibV2ServerHandle

func PerflibV2ServerHandle(ctx context.Context, o PerflibV2Server, opNum int, r ndr.Reader) (dcerpc.Operation, error)

func RegisterPerflibV2Server

func RegisterPerflibV2Server(conn dcerpc.Conn, o PerflibV2Server, opts ...dcerpc.Option)

Types

type CloseQueryHandleRequest

type CloseQueryHandleRequest struct {
	// phQuery: A handle that is created by the PerflibV2OpenQueryHandle method. An exception
	// is thrown or an error is returned by RPC if the handle did not originate from the
	// PerflibV2OpenQueryHandle method. On method return, phQuery MUST be set to NULL.
	Query *Query `idl:"name:phQuery" json:"query"`
}

CloseQueryHandleRequest structure represents the PerflibV2CloseQueryHandle operation request

func (*CloseQueryHandleRequest) MarshalNDR

func (o *CloseQueryHandleRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CloseQueryHandleRequest) UnmarshalNDR

func (o *CloseQueryHandleRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type CloseQueryHandleResponse

type CloseQueryHandleResponse struct {
	// phQuery: A handle that is created by the PerflibV2OpenQueryHandle method. An exception
	// is thrown or an error is returned by RPC if the handle did not originate from the
	// PerflibV2OpenQueryHandle method. On method return, phQuery MUST be set to NULL.
	Query *Query `idl:"name:phQuery" json:"query"`
	// Return: The PerflibV2CloseQueryHandle return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

CloseQueryHandleResponse structure represents the PerflibV2CloseQueryHandle operation response

func (*CloseQueryHandleResponse) MarshalNDR

func (o *CloseQueryHandleResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*CloseQueryHandleResponse) UnmarshalNDR

func (o *CloseQueryHandleResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumerateCounterSetInstancesRequest

type EnumerateCounterSetInstancesRequest struct {
	// szMachine: A Unicode string specifying a server name, which is passed directly to
	// the counter providers. Counter providers can ignore the server name provided by szMachine.
	Machine string `idl:"name:szMachine;string" json:"machine"`
	// CounterSetGuid: The GUID of the counterset whose instances are to be enumerated.
	//
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	|                 RETURN                  |                                                                                  |
	//	|               VALUE/CODE                |                                   DESCRIPTION                                    |
	//	|                                         |                                                                                  |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS                | The return value indicates success.                                              |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED          | The server returns this value to the client if the authentication level of the   |
	//	|                                         | client is less than RPC_C_AUTHN_LEVEL_PKT_PRIVACY.                               |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00001068 ERROR_WMI_GUID_NOT_FOUND     | The server returns this value when it cannot find a counterset with the GUID     |
	//	|                                         | that was specified by the client in the CounterSetGuid parameter.                |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000008 ERROR_NOT_ENOUGH_MEMORY      | The server returns this value to the client when the buffer the client has       |
	//	|                                         | provided is not large enough to accommodate the instance information.            |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00001069 ERROR_WMI_INSTANCE_NOT_FOUND | The server returns this value to the client when there are no active instances   |
	//	|                                         | of the counterset whose information can be returned.                             |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00001073 ERROR_WMI_INVALID_REGINFO    | The server returns this to the client if, for any reason when trying to          |
	//	|                                         | enumerate counterset instances, the information that the server expected was     |
	//	|                                         | different than what the applications exposing performance counters returned.     |
	//	|                                         | For example, the server (through some standard repository), expected information |
	//	|                                         | about one instance of a counterset to be returned (because it was specified      |
	//	|                                         | as a single-instance counterset), but the application actually maintaining       |
	//	|                                         | the information returned instance information about multiple instances of the    |
	//	|                                         | counterset.                                                                      |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000000E ERROR_OUTOFMEMORY            | The server returns this value to the client if, for any reason as it tries       |
	//	|                                         | to return the instance information of the specified counterset, it fails to      |
	//	|                                         | allocate memory.                                                                 |
	//	+-----------------------------------------+----------------------------------------------------------------------------------+
	CounterSetGUID *dtyp.GUID `idl:"name:CounterSetGuid" json:"counter_set_guid"`
	// dwInSize: The size, in bytes, of the buffer.
	InSize uint32 `idl:"name:dwInSize" json:"in_size"`
}

EnumerateCounterSetInstancesRequest structure represents the PerflibV2EnumerateCounterSetInstances operation request

func (*EnumerateCounterSetInstancesRequest) MarshalNDR

func (*EnumerateCounterSetInstancesRequest) UnmarshalNDR

type EnumerateCounterSetInstancesResponse

type EnumerateCounterSetInstancesResponse struct {
	// pdwOutSize: The total size, in bytes, of the data that is returned and written to
	// the buffer.
	OutSize uint32 `idl:"name:pdwOutSize" json:"out_size"`
	// pdwRtnSize: The necessary size, in bytes, to retrieve all the requested data.
	ReturnSize uint32 `idl:"name:pdwRtnSize" json:"return_size"`
	// lpData: The buffer that contains the instances information for the counterset.
	Data []byte `idl:"name:lpData;size_is:(dwInSize);length_is:(pdwOutSize)" json:"data"`
	// Return: The PerflibV2EnumerateCounterSetInstances return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumerateCounterSetInstancesResponse structure represents the PerflibV2EnumerateCounterSetInstances operation response

func (*EnumerateCounterSetInstancesResponse) MarshalNDR

func (*EnumerateCounterSetInstancesResponse) UnmarshalNDR

type EnumerateCounterSetRequest

type EnumerateCounterSetRequest struct {
	// szMachine: A Unicode string specifying a server name, which is passed directly to
	// the counter provider. Counter providers can ignore the server name provided by szMachine.
	Machine string `idl:"name:szMachine;string" json:"machine"`
	// dwInSize: The size of the buffer, in number of GUIDs.
	InSize uint32 `idl:"name:dwInSize" json:"in_size"`
}

EnumerateCounterSetRequest structure represents the PerflibV2EnumerateCounterSet operation request

func (*EnumerateCounterSetRequest) MarshalNDR

func (o *EnumerateCounterSetRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumerateCounterSetRequest) UnmarshalNDR

func (o *EnumerateCounterSetRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumerateCounterSetResponse

type EnumerateCounterSetResponse struct {
	// pdwOutSize: On output, the number of GUIDs that are returned in the array. The server
	// MUST set this value to zero if the value of dwInSize is less than the total number
	// of GUIDs on the server.
	OutSize uint32 `idl:"name:pdwOutSize" json:"out_size"`
	// pdwRtnSize: On output, the total number of GUIDs on the server.
	ReturnSize uint32 `idl:"name:pdwRtnSize" json:"return_size"`
	// lpData: The buffer that returns an array of GUIDs.
	Data []*dtyp.GUID `idl:"name:lpData;size_is:(dwInSize);length_is:(pdwOutSize)" json:"data"`
	// Return: The PerflibV2EnumerateCounterSet return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumerateCounterSetResponse structure represents the PerflibV2EnumerateCounterSet operation response

func (*EnumerateCounterSetResponse) MarshalNDR

func (*EnumerateCounterSetResponse) UnmarshalNDR

func (o *EnumerateCounterSetResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type OpenQueryHandleRequest

type OpenQueryHandleRequest struct {
	// szMachine: A Unicode string specifying a server name, which is passed directly to
	// the counter providers. Counter providers can ignore the server name provided by szMachine.
	Machine string `idl:"name:szMachine;string" json:"machine"`
}

OpenQueryHandleRequest structure represents the PerflibV2OpenQueryHandle operation request

func (*OpenQueryHandleRequest) MarshalNDR

func (o *OpenQueryHandleRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*OpenQueryHandleRequest) UnmarshalNDR

func (o *OpenQueryHandleRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type OpenQueryHandleResponse

type OpenQueryHandleResponse struct {
	// phQuery: A handle used by other methods to add, remove, and collect performance counters.
	Query *Query `idl:"name:phQuery" json:"query"`
	// Return: The PerflibV2OpenQueryHandle return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

OpenQueryHandleResponse structure represents the PerflibV2OpenQueryHandle operation response

func (*OpenQueryHandleResponse) MarshalNDR

func (o *OpenQueryHandleResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*OpenQueryHandleResponse) UnmarshalNDR

func (o *OpenQueryHandleResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type PerflibV2Client

type PerflibV2Client interface {

	// The PerflibV2EnumerateCounterSet method allows a client to enumerate the available
	// countersets on a server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) for success; otherwise,
	// it MUST return one of the standard Windows errors, as specified in [MS-ERREF] section
	// 2.2.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | The return value indicates success.                                              |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | The server returns this value to the client if the authentication level of the   |
	//	|                                    | client is less than RPC_C_AUTHN_LEVEL_PKT_PRIVACY.                               |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000008 ERROR_NOT_ENOUGH_MEMORY | This return value is used to indicate when the size of the client-provided       |
	//	|                                    | buffer is not large enough to accommodate all of the GUID values that are being  |
	//	|                                    | returned by the server.                                                          |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000000E ERROR_OUTOFMEMORY       | This return value is used to indicate that the server, while attempting to       |
	//	|                                    | return all of the appropriate GUIDs to the client, could not allocate memory.    |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	EnumerateCounterSet(context.Context, *EnumerateCounterSetRequest, ...dcerpc.CallOption) (*EnumerateCounterSetResponse, error)

	// The PerflibV2QueryCounterSetRegistrationInfo method allows a client to enumerate
	// metadata about a counterset or performance counter on a server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) for success; otherwise,
	// it MUST return one of the standard Windows errors, as specified in [MS-ERREF] section
	// 2.2.
	//
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                 |                                                                                  |
	//	|              VALUE/CODE               |                                   DESCRIPTION                                    |
	//	|                                       |                                                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS              | The return value indicates success.                                              |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED        | The server returns this value to the client if the authentication level of the   |
	//	|                                       | client is less than RPC_C_AUTHN_LEVEL_PKT_PRIVACY.                               |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER    | This return value indicates that there was a problem with the parameter that     |
	//	|                                       | was passed by the client to the server. The server MUST return this value        |
	//	|                                       | when: RequestCode (the RequestCode is not between 0x00000001 and 0x0000000A      |
	//	|                                       | inclusive).                                                                      |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00001068 ERROR_WMI_GUID_NOT_FOUND   | The server returns this value if it does not have a counterset with the same     |
	//	|                                       | GUID as the one passed by the client through the CounterSetGuid parameter of the |
	//	|                                       | method. The server will also return this value if it cannot find the GUID of the |
	//	|                                       | provider to which the counterset belongs.                                        |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000008 ERROR_NOT_ENOUGH_MEMORY    | The server will return this value to the client if the RequestCode parameter is  |
	//	|                                       | valid, but the buffer pointed to by lpData is not of sufficient size.            |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000106A ERROR_WMI_ITEMID_NOT_FOUND | The server returns this error code when the value of RequestCode is 0x02 and a   |
	//	|                                       | counterset with the GUID provided through the CounterSetGuid parameter exists,   |
	//	|                                       | but the counter identifier is not found in the counterset.                       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//
	// The data that this method returns depends on the type of information that is requested,
	// as denoted by the RequestCode parameter.
	//
	// * If the value of RequestCode is 0x00000003, 0x00000004, 0x00000005, or 0x00000006,
	// and the language specified by *RequestLCID* is not installed on the server, an error
	// MUST be returned.
	//
	// * If RequestCode = 0x00000001, the server returns information about the counterset.
	// The server MUST return a _PERF_COUNTERSET_REG_INFO ( a2745a4d-3428-4804-868d-b0208e469fa2
	// ) structure that is followed by a set of _PERF_COUNTER_REG_INFO ( a89712bd-4ba1-4dab-8dbb-dea712c237ba
	// ) structures. The number of _PERF_COUNTER_REG_INFO structures MUST be equal to the
	// *NumCounters* field of the PERF_COUNTERSET_REG_INFO structure.
	//
	// [PerflibV2QueryCounterSetRegistrationInfo return if RequestCode = 0x00000001](ms-pcq_files/image001.png)
	QueryCounterSetRegistrationInfo(context.Context, *QueryCounterSetRegistrationInfoRequest, ...dcerpc.CallOption) (*QueryCounterSetRegistrationInfoResponse, error)

	// The PerflibV2EnumerateCounterSetInstances method retrieves all active instances of
	// the client-specified counterset on the server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) for success; otherwise,
	// it MUST return one of the standard Windows errors, as specified in [MS-ERREF] section
	// 2.2.
	EnumerateCounterSetInstances(context.Context, *EnumerateCounterSetInstancesRequest, ...dcerpc.CallOption) (*EnumerateCounterSetInstancesResponse, error)

	// The PerflibV2OpenQueryHandle method returns a handle to the client that the client
	// then uses to add, remove, and collect performance counters from the server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) for success; otherwise,
	// it MUST return one of the standard Windows errors, as specified in [MS-ERREF] section
	// 2.2.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                |                                                                                  |
	//	|              VALUE/CODE              |                                   DESCRIPTION                                    |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS             | The return value indicates success.                                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED       | The server returns this value to the client if the authentication level of the   |
	//	|                                      | client is less than RPC_C_AUTHN_LEVEL_PKT_PRIVACY.                               |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000000E ERROR_OUTOFMEMORY         | The server returns this value to the client if for any reason memory allocation  |
	//	|                                      | fails as it tries to allocate memory to begin storing state about the client     |
	//	|                                      | request.                                                                         |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000005AA ERROR_NO_SYSTEM_RESOURCES | The server returns this value if it cannot allocate other system resource to     |
	//	|                                      | process the client request. This is not specifically memory about the client     |
	//	|                                      | request or handle.                                                               |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	OpenQueryHandle(context.Context, *OpenQueryHandleRequest, ...dcerpc.CallOption) (*OpenQueryHandleResponse, error)

	// The PerflibV2CloseQueryHandle method closes the handle that is returned from the
	// PerflibV2OpenQueryHandle method.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) for success; otherwise,
	// it MUST return one of the standard Windows errors, as specified in [MS-ERREF] section
	// 2.2.
	//
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN             |                                                                                  |
	//	|           VALUE/CODE           |                                   DESCRIPTION                                    |
	//	|                                |                                                                                  |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS       | The return value indicates success.                                              |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED | The server returns this value to the client if the authentication level of the   |
	//	|                                | client is less than RPC_C_AUTHN_LEVEL_PKT_PRIVACY. The opened handle, phQuery,   |
	//	|                                | remains in that state until the client calls PerflibV2CloseQueryHandle with      |
	//	|                                | authentication level RPC_C_AUTHN_LEVEL_PKT_PRIVACY.                              |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	CloseQueryHandle(context.Context, *CloseQueryHandleRequest, ...dcerpc.CallOption) (*CloseQueryHandleResponse, error)

	// The PerflibV2QueryCounterInfo method returns information on the performance counters
	// that belong to the performance counter query associated with the RPC_HQUERY; these
	// performance counters are associated with RPC_HQUERY by calling the PerflibV2ValidateCounters
	// method. The server MUST return performance counter metadata information, stored in
	// a _PERF_COUNTER_IDENTIFIER structure for each performance counter, for the performance
	// counters that are associated with the RPC_HQUERY handle.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) for success; otherwise,
	// it MUST return one of the standard Windows errors, as specified in [MS-ERREF] section
	// 2.2.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | The return value indicates success.                                              |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | The server returns this value to the client if the authentication level of the   |
	//	|                                    | client is less than RPC_C_AUTHN_LEVEL_PKT_PRIVACY.                               |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000008 ERROR_NOT_ENOUGH_MEMORY | The server will return this value if the buffer pointed to by lpData is not of   |
	//	|                                    | sufficient size to return the requested information back to the client.          |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	QueryCounterInfo(context.Context, *QueryCounterInfoRequest, ...dcerpc.CallOption) (*QueryCounterInfoResponse, error)

	// The PerflibV2QueryCounterData method retrieves data for the performance counters
	// associated with the query. Performance counters can be added or removed from queries
	// by calling PerflibV2ValidateCounters.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) for success; otherwise,
	// it MUST return one of the standard Windows error codes, as specified in [MS-ERREF]
	// section 2.2.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | The return value indicates success.                                              |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | The server returns this value to the client if the authentication level of the   |
	//	|                                    | client is less than RPC_C_AUTHN_LEVEL_PKT_PRIVACY.                               |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000008 ERROR_NOT_ENOUGH_MEMORY | The server will return this value to the client if the size of the buffer        |
	//	|                                    | pointed to by lpData is not of sufficient size to return the performance counter |
	//	|                                    | values to the client.                                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	QueryCounterData(context.Context, *QueryCounterDataRequest, ...dcerpc.CallOption) (*QueryCounterDataResponse, error)

	// This PerflibV2ValidateCounters method either adds or removes performance counters
	// from the query.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) for success; otherwise,
	// it MUST return one of the standard Windows error codes, as specified in [MS-ERREF]
	// section 2.2.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | The return value indicates success.                                              |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | The server returns this value to the client if the authentication level of the   |
	//	|                                    | client is less than RPC_C_AUTHN_LEVEL_PKT_PRIVACY.                               |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | The server returns this value to the client for any of the following reasons:    |
	//	|                                    | dwSize is less than the size of the _PERF_COUNTER_IDENTIFIER structure (this     |
	//	|                                    | condition would prevent the server from returning information about one          |
	//	|                                    | counter). The size of a single _PERF_COUNTER_IDENTIFIER structure that is        |
	//	|                                    | passed into the buffer by the client is smaller than the expected size of a      |
	//	|                                    | _PERF_COUNTER_IDENTIFIER structure.                                              |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000000E ERROR_OUTOFMEMORY       | The server will return this value to the client if, in the process of completing |
	//	|                                    | the client's request of adding or removing performance counters from the query,  |
	//	|                                    | a memory allocation fails.                                                       |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//
	// Errors are returned to the client by the server in one of two ways: the first is
	// if the performance counter infrastructure on the server could not add or remove performance
	// counters from the query; the second is if the provider that is exposing the performance
	// counter returns an error, in which case the performance counter infrastructure passes
	// the error back to the client.
	//
	// When the PerflibV2ValidateCounters method returns, the Status field of each _PERF_COUNTER_IDENTIFIER
	// sent to the server will have the result of whether or not the server was able to
	// successfully add or remove that particular performance counter from the query that
	// is identified by the handle hQuery.
	//
	// If the performance counter infrastructure is setting the Status field to an error
	// value, then it MUST be one of the following values.
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                 RETURN                 |                                                                                  |
	//	|               VALUE/CODE               |                                   DESCRIPTION                                    |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_STATUS                | The return value indicates success. The counter was either successfully added or |
	//	|                                        | removed from the query.                                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00001068 ERROR_WMI_GUID_NOT_FOUND    | The server cannot find the GUID that was passed by the client in the             |
	//	|                                        | CounterSetGuid field of the _PERF_COUNTER_IDENTIFIER structure.                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000106A ERROR_WMI_ITEMID_NOT_ FOUND | The server cannot find the counter whose numeric identifier is in the CounterId  |
	//	|                                        | field of the _PERF_COUNTER_IDENTIFIER structure.                                 |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000003 ERROR_PATH_NOT_FOUND        | The server cannot find an active instance with the name that was placed after    |
	//	|                                        | the _PERF_COUNTER_IDENTIFIER structure.                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000000B7 ERROR_ALREADY_EXISTS        | The client tried to add a performance counter that has already been added in a   |
	//	|                                        | previous call to PerflibV2ValidateCounters.                                      |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057     | The server will return this value in the Status field of the                     |
	//	|                                        | _PERF_COUNTER_IDENTIFIER either when the _PERF_COUNTER_IDENTIFIER is corrupt, or |
	//	|                                        | if the server cannot find the counter to delete from the query that is specified |
	//	|                                        | by the structure.                                                                |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000000E ERROR_OUTOFMEMORY           | The server will return this value to the client if, either in the process of     |
	//	|                                        | adding or removing a counter from a query, a memory allocation failure occurred. |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	ValidateCounters(context.Context, *ValidateCountersRequest, ...dcerpc.CallOption) (*ValidateCountersResponse, error)

	// AlterContext alters the client context.
	AlterContext(context.Context, ...dcerpc.Option) error
}

PerflibV2 interface.

func NewPerflibV2Client

func NewPerflibV2Client(ctx context.Context, cc dcerpc.Conn, opts ...dcerpc.Option) (PerflibV2Client, error)

type PerflibV2Server

type PerflibV2Server interface {

	// The PerflibV2EnumerateCounterSet method allows a client to enumerate the available
	// countersets on a server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) for success; otherwise,
	// it MUST return one of the standard Windows errors, as specified in [MS-ERREF] section
	// 2.2.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | The return value indicates success.                                              |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | The server returns this value to the client if the authentication level of the   |
	//	|                                    | client is less than RPC_C_AUTHN_LEVEL_PKT_PRIVACY.                               |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000008 ERROR_NOT_ENOUGH_MEMORY | This return value is used to indicate when the size of the client-provided       |
	//	|                                    | buffer is not large enough to accommodate all of the GUID values that are being  |
	//	|                                    | returned by the server.                                                          |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000000E ERROR_OUTOFMEMORY       | This return value is used to indicate that the server, while attempting to       |
	//	|                                    | return all of the appropriate GUIDs to the client, could not allocate memory.    |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	EnumerateCounterSet(context.Context, *EnumerateCounterSetRequest) (*EnumerateCounterSetResponse, error)

	// The PerflibV2QueryCounterSetRegistrationInfo method allows a client to enumerate
	// metadata about a counterset or performance counter on a server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) for success; otherwise,
	// it MUST return one of the standard Windows errors, as specified in [MS-ERREF] section
	// 2.2.
	//
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                 |                                                                                  |
	//	|              VALUE/CODE               |                                   DESCRIPTION                                    |
	//	|                                       |                                                                                  |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS              | The return value indicates success.                                              |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED        | The server returns this value to the client if the authentication level of the   |
	//	|                                       | client is less than RPC_C_AUTHN_LEVEL_PKT_PRIVACY.                               |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER    | This return value indicates that there was a problem with the parameter that     |
	//	|                                       | was passed by the client to the server. The server MUST return this value        |
	//	|                                       | when: RequestCode (the RequestCode is not between 0x00000001 and 0x0000000A      |
	//	|                                       | inclusive).                                                                      |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00001068 ERROR_WMI_GUID_NOT_FOUND   | The server returns this value if it does not have a counterset with the same     |
	//	|                                       | GUID as the one passed by the client through the CounterSetGuid parameter of the |
	//	|                                       | method. The server will also return this value if it cannot find the GUID of the |
	//	|                                       | provider to which the counterset belongs.                                        |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000008 ERROR_NOT_ENOUGH_MEMORY    | The server will return this value to the client if the RequestCode parameter is  |
	//	|                                       | valid, but the buffer pointed to by lpData is not of sufficient size.            |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000106A ERROR_WMI_ITEMID_NOT_FOUND | The server returns this error code when the value of RequestCode is 0x02 and a   |
	//	|                                       | counterset with the GUID provided through the CounterSetGuid parameter exists,   |
	//	|                                       | but the counter identifier is not found in the counterset.                       |
	//	+---------------------------------------+----------------------------------------------------------------------------------+
	//
	// The data that this method returns depends on the type of information that is requested,
	// as denoted by the RequestCode parameter.
	//
	// * If the value of RequestCode is 0x00000003, 0x00000004, 0x00000005, or 0x00000006,
	// and the language specified by *RequestLCID* is not installed on the server, an error
	// MUST be returned.
	//
	// * If RequestCode = 0x00000001, the server returns information about the counterset.
	// The server MUST return a _PERF_COUNTERSET_REG_INFO ( a2745a4d-3428-4804-868d-b0208e469fa2
	// ) structure that is followed by a set of _PERF_COUNTER_REG_INFO ( a89712bd-4ba1-4dab-8dbb-dea712c237ba
	// ) structures. The number of _PERF_COUNTER_REG_INFO structures MUST be equal to the
	// *NumCounters* field of the PERF_COUNTERSET_REG_INFO structure.
	//
	// [PerflibV2QueryCounterSetRegistrationInfo return if RequestCode = 0x00000001](ms-pcq_files/image001.png)
	QueryCounterSetRegistrationInfo(context.Context, *QueryCounterSetRegistrationInfoRequest) (*QueryCounterSetRegistrationInfoResponse, error)

	// The PerflibV2EnumerateCounterSetInstances method retrieves all active instances of
	// the client-specified counterset on the server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) for success; otherwise,
	// it MUST return one of the standard Windows errors, as specified in [MS-ERREF] section
	// 2.2.
	EnumerateCounterSetInstances(context.Context, *EnumerateCounterSetInstancesRequest) (*EnumerateCounterSetInstancesResponse, error)

	// The PerflibV2OpenQueryHandle method returns a handle to the client that the client
	// then uses to add, remove, and collect performance counters from the server.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) for success; otherwise,
	// it MUST return one of the standard Windows errors, as specified in [MS-ERREF] section
	// 2.2.
	//
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	|                RETURN                |                                                                                  |
	//	|              VALUE/CODE              |                                   DESCRIPTION                                    |
	//	|                                      |                                                                                  |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS             | The return value indicates success.                                              |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED       | The server returns this value to the client if the authentication level of the   |
	//	|                                      | client is less than RPC_C_AUTHN_LEVEL_PKT_PRIVACY.                               |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000000E ERROR_OUTOFMEMORY         | The server returns this value to the client if for any reason memory allocation  |
	//	|                                      | fails as it tries to allocate memory to begin storing state about the client     |
	//	|                                      | request.                                                                         |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000005AA ERROR_NO_SYSTEM_RESOURCES | The server returns this value if it cannot allocate other system resource to     |
	//	|                                      | process the client request. This is not specifically memory about the client     |
	//	|                                      | request or handle.                                                               |
	//	+--------------------------------------+----------------------------------------------------------------------------------+
	OpenQueryHandle(context.Context, *OpenQueryHandleRequest) (*OpenQueryHandleResponse, error)

	// The PerflibV2CloseQueryHandle method closes the handle that is returned from the
	// PerflibV2OpenQueryHandle method.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) for success; otherwise,
	// it MUST return one of the standard Windows errors, as specified in [MS-ERREF] section
	// 2.2.
	//
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN             |                                                                                  |
	//	|           VALUE/CODE           |                                   DESCRIPTION                                    |
	//	|                                |                                                                                  |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS       | The return value indicates success.                                              |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED | The server returns this value to the client if the authentication level of the   |
	//	|                                | client is less than RPC_C_AUTHN_LEVEL_PKT_PRIVACY. The opened handle, phQuery,   |
	//	|                                | remains in that state until the client calls PerflibV2CloseQueryHandle with      |
	//	|                                | authentication level RPC_C_AUTHN_LEVEL_PKT_PRIVACY.                              |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	CloseQueryHandle(context.Context, *CloseQueryHandleRequest) (*CloseQueryHandleResponse, error)

	// The PerflibV2QueryCounterInfo method returns information on the performance counters
	// that belong to the performance counter query associated with the RPC_HQUERY; these
	// performance counters are associated with RPC_HQUERY by calling the PerflibV2ValidateCounters
	// method. The server MUST return performance counter metadata information, stored in
	// a _PERF_COUNTER_IDENTIFIER structure for each performance counter, for the performance
	// counters that are associated with the RPC_HQUERY handle.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) for success; otherwise,
	// it MUST return one of the standard Windows errors, as specified in [MS-ERREF] section
	// 2.2.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | The return value indicates success.                                              |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | The server returns this value to the client if the authentication level of the   |
	//	|                                    | client is less than RPC_C_AUTHN_LEVEL_PKT_PRIVACY.                               |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000008 ERROR_NOT_ENOUGH_MEMORY | The server will return this value if the buffer pointed to by lpData is not of   |
	//	|                                    | sufficient size to return the requested information back to the client.          |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	QueryCounterInfo(context.Context, *QueryCounterInfoRequest) (*QueryCounterInfoResponse, error)

	// The PerflibV2QueryCounterData method retrieves data for the performance counters
	// associated with the query. Performance counters can be added or removed from queries
	// by calling PerflibV2ValidateCounters.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) for success; otherwise,
	// it MUST return one of the standard Windows error codes, as specified in [MS-ERREF]
	// section 2.2.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | The return value indicates success.                                              |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | The server returns this value to the client if the authentication level of the   |
	//	|                                    | client is less than RPC_C_AUTHN_LEVEL_PKT_PRIVACY.                               |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000008 ERROR_NOT_ENOUGH_MEMORY | The server will return this value to the client if the size of the buffer        |
	//	|                                    | pointed to by lpData is not of sufficient size to return the performance counter |
	//	|                                    | values to the client.                                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	QueryCounterData(context.Context, *QueryCounterDataRequest) (*QueryCounterDataResponse, error)

	// This PerflibV2ValidateCounters method either adds or removes performance counters
	// from the query.
	//
	// Return Values: This method MUST return zero (ERROR_SUCCESS) for success; otherwise,
	// it MUST return one of the standard Windows error codes, as specified in [MS-ERREF]
	// section 2.2.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | The return value indicates success.                                              |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | The server returns this value to the client if the authentication level of the   |
	//	|                                    | client is less than RPC_C_AUTHN_LEVEL_PKT_PRIVACY.                               |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | The server returns this value to the client for any of the following reasons:    |
	//	|                                    | dwSize is less than the size of the _PERF_COUNTER_IDENTIFIER structure (this     |
	//	|                                    | condition would prevent the server from returning information about one          |
	//	|                                    | counter). The size of a single _PERF_COUNTER_IDENTIFIER structure that is        |
	//	|                                    | passed into the buffer by the client is smaller than the expected size of a      |
	//	|                                    | _PERF_COUNTER_IDENTIFIER structure.                                              |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000000E ERROR_OUTOFMEMORY       | The server will return this value to the client if, in the process of completing |
	//	|                                    | the client's request of adding or removing performance counters from the query,  |
	//	|                                    | a memory allocation fails.                                                       |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//
	// Errors are returned to the client by the server in one of two ways: the first is
	// if the performance counter infrastructure on the server could not add or remove performance
	// counters from the query; the second is if the provider that is exposing the performance
	// counter returns an error, in which case the performance counter infrastructure passes
	// the error back to the client.
	//
	// When the PerflibV2ValidateCounters method returns, the Status field of each _PERF_COUNTER_IDENTIFIER
	// sent to the server will have the result of whether or not the server was able to
	// successfully add or remove that particular performance counter from the query that
	// is identified by the handle hQuery.
	//
	// If the performance counter infrastructure is setting the Status field to an error
	// value, then it MUST be one of the following values.
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                 RETURN                 |                                                                                  |
	//	|               VALUE/CODE               |                                   DESCRIPTION                                    |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_STATUS                | The return value indicates success. The counter was either successfully added or |
	//	|                                        | removed from the query.                                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00001068 ERROR_WMI_GUID_NOT_FOUND    | The server cannot find the GUID that was passed by the client in the             |
	//	|                                        | CounterSetGuid field of the _PERF_COUNTER_IDENTIFIER structure.                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000106A ERROR_WMI_ITEMID_NOT_ FOUND | The server cannot find the counter whose numeric identifier is in the CounterId  |
	//	|                                        | field of the _PERF_COUNTER_IDENTIFIER structure.                                 |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000003 ERROR_PATH_NOT_FOUND        | The server cannot find an active instance with the name that was placed after    |
	//	|                                        | the _PERF_COUNTER_IDENTIFIER structure.                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000000B7 ERROR_ALREADY_EXISTS        | The client tried to add a performance counter that has already been added in a   |
	//	|                                        | previous call to PerflibV2ValidateCounters.                                      |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057     | The server will return this value in the Status field of the                     |
	//	|                                        | _PERF_COUNTER_IDENTIFIER either when the _PERF_COUNTER_IDENTIFIER is corrupt, or |
	//	|                                        | if the server cannot find the counter to delete from the query that is specified |
	//	|                                        | by the structure.                                                                |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000000E ERROR_OUTOFMEMORY           | The server will return this value to the client if, either in the process of     |
	//	|                                        | adding or removing a counter from a query, a memory allocation failure occurred. |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	ValidateCounters(context.Context, *ValidateCountersRequest) (*ValidateCountersResponse, error)
}

PerflibV2 server interface.

type Query

type Query dcetypes.ContextHandle

Query structure represents RPC_HQUERY RPC structure.

func (*Query) ContextHandle

func (o *Query) ContextHandle() *dcetypes.ContextHandle

func (*Query) MarshalNDR

func (o *Query) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Query) UnmarshalNDR

func (o *Query) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type QueryCounterDataRequest

type QueryCounterDataRequest struct {
	// hQuery: The handle returned by the PerflibV2OpenQueryHandle method; an exception
	// is thrown or an error is returned by RPC if the handle did not originate from the
	// PerflibV2OpenQueryHandle method.
	Query *Query `idl:"name:hQuery" json:"query"`
	// dwInSize: The size, in bytes, of the buffer.
	InSize uint32 `idl:"name:dwInSize" json:"in_size"`
}

QueryCounterDataRequest structure represents the PerflibV2QueryCounterData operation request

func (*QueryCounterDataRequest) MarshalNDR

func (o *QueryCounterDataRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*QueryCounterDataRequest) UnmarshalNDR

func (o *QueryCounterDataRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type QueryCounterDataResponse

type QueryCounterDataResponse struct {
	// pdwOutSize: The size, in bytes, of the data that is returned and written to the buffer.
	OutSize uint32 `idl:"name:pdwOutSize" json:"out_size"`
	// pdwRtnSize: The necessary size, in bytes, to retrieve all the requested data.
	ReturnSize uint32 `idl:"name:pdwRtnSize" json:"return_size"`
	// lpData: The buffer that contains the requested counter information.
	Data []byte `idl:"name:lpData;size_is:(dwInSize);length_is:(pdwOutSize)" json:"data"`
	// Return: The PerflibV2QueryCounterData return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

QueryCounterDataResponse structure represents the PerflibV2QueryCounterData operation response

func (*QueryCounterDataResponse) MarshalNDR

func (o *QueryCounterDataResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*QueryCounterDataResponse) UnmarshalNDR

func (o *QueryCounterDataResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type QueryCounterInfoRequest

type QueryCounterInfoRequest struct {
	// hQuery: The handle returned by the PerflibV2OpenQueryHandle method; an exception
	// is thrown or an error is returned by RPC if the handle did not originate from the
	// PerflibV2OpenQueryHandle method.
	Query *Query `idl:"name:hQuery" json:"query"`
	// dwInSize: The size, in bytes, of the buffer.
	InSize uint32 `idl:"name:dwInSize" json:"in_size"`
}

QueryCounterInfoRequest structure represents the PerflibV2QueryCounterInfo operation request

func (*QueryCounterInfoRequest) MarshalNDR

func (o *QueryCounterInfoRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*QueryCounterInfoRequest) UnmarshalNDR

func (o *QueryCounterInfoRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type QueryCounterInfoResponse

type QueryCounterInfoResponse struct {
	// pdwOutSize: The size, in bytes, of the data that is written to the buffer.
	OutSize uint32 `idl:"name:pdwOutSize" json:"out_size"`
	// pdwRtnSize: The necessary size, in bytes, to retrieve all the requested data.
	ReturnSize uint32 `idl:"name:pdwRtnSize" json:"return_size"`
	// lpData: The buffer that contains the requested counter information.
	Data []byte `idl:"name:lpData;size_is:(dwInSize);length_is:(pdwOutSize)" json:"data"`
	// Return: The PerflibV2QueryCounterInfo return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

QueryCounterInfoResponse structure represents the PerflibV2QueryCounterInfo operation response

func (*QueryCounterInfoResponse) MarshalNDR

func (o *QueryCounterInfoResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*QueryCounterInfoResponse) UnmarshalNDR

func (o *QueryCounterInfoResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type QueryCounterSetRegistrationInfoRequest

type QueryCounterSetRegistrationInfoRequest struct {
	// szMachine: A Unicode string specifying a server name, which is passed directly to
	// the counter providers. Counter providers can ignore the server name provided by szMachine.
	Machine string `idl:"name:szMachine;string" json:"machine"`
	// CounterSetGuid: The GUID of the counterset whose information needs to be retrieved;
	// this can also be the GUID of the counterset to which the performance counters whose
	// information is being queried belong.
	CounterSetGUID *dtyp.GUID `idl:"name:CounterSetGuid" json:"counter_set_guid"`
	// RequestCode: The type of information on the counterset to retrieve. The value MUST
	// be one of the following.
	//
	//	+------------+----------------------------------------------------------------+
	//	|            |                                                                |
	//	|   VALUE    |                            MEANING                             |
	//	|            |                                                                |
	//	+------------+----------------------------------------------------------------+
	//	+------------+----------------------------------------------------------------+
	//	| 0x00000001 | Return information about the counterset.                       |
	//	+------------+----------------------------------------------------------------+
	//	| 0x00000002 | Return information about a performance counter.                |
	//	+------------+----------------------------------------------------------------+
	//	| 0x00000003 | Return the name of the counterset.                             |
	//	+------------+----------------------------------------------------------------+
	//	| 0x00000004 | Return the description of the counterset.                      |
	//	+------------+----------------------------------------------------------------+
	//	| 0x00000005 | Return the names of the performance counters.                  |
	//	+------------+----------------------------------------------------------------+
	//	| 0x00000006 | Return the descriptions of the performance counters.           |
	//	+------------+----------------------------------------------------------------+
	//	| 0x00000007 | Return the name of the provider.                               |
	//	+------------+----------------------------------------------------------------+
	//	| 0x00000008 | Return the GUID of the provider.                               |
	//	+------------+----------------------------------------------------------------+
	//	| 0x00000009 | Return the English-language name of the counterset.            |
	//	+------------+----------------------------------------------------------------+
	//	| 0x0000000A | Return the English-language names of the performance counters. |
	//	+------------+----------------------------------------------------------------+
	RequestCode uint32 `idl:"name:RequestCode" json:"request_code"`
	// RequestLCID: When the value of RequestCode is 0x00000003, 0x00000004, 0x00000005,
	// or 0x00000006, RequestLCID specifies the locale ID (as specified in [MS-LCID]), or
	// is set to 0 to instruct the server to use its default language.
	//
	// When the value of RequestCode is 0x00000002, RequestLCID specifies the counter ID.
	RequestLocaleID uint32 `idl:"name:RequestLCID" json:"request_locale_id"`
	// dwInSize: The size, in bytes, of the buffer.
	InSize uint32 `idl:"name:dwInSize" json:"in_size"`
}

QueryCounterSetRegistrationInfoRequest structure represents the PerflibV2QueryCounterSetRegistrationInfo operation request

func (*QueryCounterSetRegistrationInfoRequest) MarshalNDR

func (*QueryCounterSetRegistrationInfoRequest) UnmarshalNDR

type QueryCounterSetRegistrationInfoResponse

type QueryCounterSetRegistrationInfoResponse struct {
	// pdwOutSize: The size, in bytes, of the data in the buffer pointed to by lpData.
	OutSize uint32 `idl:"name:pdwOutSize" json:"out_size"`
	// pdwRtnSize: The necessary size, in bytes, to retrieve all the requested data.
	ReturnSize uint32 `idl:"name:pdwRtnSize" json:"return_size"`
	// lpData: The buffer that returns the requested data.
	Data []byte `idl:"name:lpData;size_is:(dwInSize);length_is:(pdwOutSize)" json:"data"`
	// Return: The PerflibV2QueryCounterSetRegistrationInfo return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

QueryCounterSetRegistrationInfoResponse structure represents the PerflibV2QueryCounterSetRegistrationInfo operation response

func (*QueryCounterSetRegistrationInfoResponse) MarshalNDR

func (*QueryCounterSetRegistrationInfoResponse) UnmarshalNDR

type ValidateCountersRequest

type ValidateCountersRequest struct {
	// hQuery: The handle that is created by the PerflibV2OpenQueryHandle method; an exception
	// is thrown or an error is returned by RPC if the handle did not originate from the
	// PerflibV2OpenQueryHandle method.
	Query *Query `idl:"name:hQuery" json:"query"`
	// dwInSize: The size, in bytes, of the buffer.
	InSize uint32 `idl:"name:dwInSize" json:"in_size"`
	// lpData: The buffer that contains the counter information to add to, or remove from,
	// the query. The server will return this buffer after it has attempted to add or remove
	// the specified counters; the Status field of each _PERF_COUNTER_IDENTIFIER structure
	// will contain information about whether or not the server was successful.
	Data []byte `idl:"name:lpData;size_is:(dwInSize)" json:"data"`
	// dwAdd: A Boolean value that indicates if counters are being added to, or removed
	// from, the query. If counters are being added, this MUST be set to TRUE; otherwise,
	// it MUST be set to FALSE.
	Add uint32 `idl:"name:dwAdd" json:"add"`
}

ValidateCountersRequest structure represents the PerflibV2ValidateCounters operation request

func (*ValidateCountersRequest) MarshalNDR

func (o *ValidateCountersRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ValidateCountersRequest) UnmarshalNDR

func (o *ValidateCountersRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ValidateCountersResponse

type ValidateCountersResponse struct {
	// lpData: The buffer that contains the counter information to add to, or remove from,
	// the query. The server will return this buffer after it has attempted to add or remove
	// the specified counters; the Status field of each _PERF_COUNTER_IDENTIFIER structure
	// will contain information about whether or not the server was successful.
	Data []byte `idl:"name:lpData;size_is:(dwInSize)" json:"data"`
	// Return: The PerflibV2ValidateCounters return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ValidateCountersResponse structure represents the PerflibV2ValidateCounters operation response

func (*ValidateCountersResponse) MarshalNDR

func (o *ValidateCountersResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ValidateCountersResponse) UnmarshalNDR

func (o *ValidateCountersResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL