perflibv2

package
v1.2.4 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2025 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 {
	// XXX: dwInSize is an implicit input depedency for output parameters
	InSize uint32 `idl:"name:dwInSize" json:"in_size"`

	// 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 {
	// XXX: dwInSize is an implicit input depedency for output parameters
	InSize uint32 `idl:"name:dwInSize" json:"in_size"`

	// 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

	// Conn returns the client connection (unsafe)
	Conn() dcerpc.Conn
}

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 {
	// XXX: dwInSize is an implicit input depedency for output parameters
	InSize uint32 `idl:"name:dwInSize" json:"in_size"`

	// 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 {
	// XXX: dwInSize is an implicit input depedency for output parameters
	InSize uint32 `idl:"name:dwInSize" json:"in_size"`

	// 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 {
	// XXX: dwInSize is an implicit input depedency for output parameters
	InSize uint32 `idl:"name:dwInSize" json:"in_size"`

	// 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 UnimplementedPerflibV2Server added in v1.1.5

type UnimplementedPerflibV2Server struct {
}

Unimplemented PerflibV2

func (UnimplementedPerflibV2Server) CloseQueryHandle added in v1.1.5

func (UnimplementedPerflibV2Server) EnumerateCounterSet added in v1.1.5

func (UnimplementedPerflibV2Server) EnumerateCounterSetInstances added in v1.1.5

func (UnimplementedPerflibV2Server) OpenQueryHandle added in v1.1.5

func (UnimplementedPerflibV2Server) QueryCounterData added in v1.1.5

func (UnimplementedPerflibV2Server) QueryCounterInfo added in v1.1.5

func (UnimplementedPerflibV2Server) QueryCounterSetRegistrationInfo added in v1.1.5

func (UnimplementedPerflibV2Server) ValidateCounters added in v1.1.5

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 {
	// XXX: dwInSize is an implicit input depedency for output parameters
	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"`
	// 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