ULONG
PerfAutoInitialize(
    void
)
{
    ULONG Status = ERROR_SUCCESS;

    Status = PerfStartProvider(
            (LPGUID) & ProviderGuid_IISxpressNativeModuleperf_1,
            (PERFLIBREQUEST) ControlCallback_IISxpressNativeModuleperf_1,
            & hDataSource_IISxpressNativeModuleperf_1);
    if (Status != ERROR_SUCCESS) {
        goto Cleanup;
    }

    Status = PerfSetCounterSetInfo(
            hDataSource_IISxpressNativeModuleperf_1,
            (PPERF_COUNTERSET_INFO) & CtrSet_IISxpressNativeModuleperf_1_1,
            dwCtrSet_IISxpressNativeModuleperf_1_1);
    if (Status != ERROR_SUCCESS) {
        goto Cleanup;
    }

Cleanup:
    if (Status != ERROR_SUCCESS) {
        PerfStopProvider(hDataSource_IISxpressNativeModuleperf_1);
    }
    return Status;
}
ULONG
PerfAutoCleanup(
    void
)
{
    ULONG Status;

    Status = PerfStopProvider(hDataSource_IISxpressNativeModuleperf_1);
    return ERROR_SUCCESS;
}
Beispiel #3
0
EXTERN_C FORCEINLINE
VOID
CounterCleanup(
    VOID
    )
{
    if (Yardmaster != NULL) {
        PerfStopProvider(Yardmaster);
        Yardmaster = NULL;
    }
}