static VOID VMCAReadLogConfig() { DWORD dwError = 0; dwError = VMCAConfigGetDword(VMCA_MAX_OLD_LOGS_VALUE_NAME, &gVMCAMaxOldLogs); if (dwError != 0) { gVMCAMaxOldLogs = LOG_GENERATION_MAX; dwError = 0; } else if (gVMCAMaxOldLogs > VMCA_MAX_OLD_LOGS_CAP) { gVMCAMaxOldLogs = VMCA_MAX_OLD_LOGS_CAP; } else if (gVMCAMaxOldLogs < VMCA_MAX_OLD_LOGS_MIN) { gVMCAMaxOldLogs = VMCA_MAX_OLD_LOGS_MIN; } dwError = VMCAConfigGetDword(VMCA_MAX_LOG_SIZE_VALUE_NAME, &gVMCAMaxLogSizeBytes); if (dwError != 0) { gVMCAMaxLogSizeBytes = MAX_LOG_SIZE; dwError = 0; } else if (gVMCAMaxLogSizeBytes < VMCA_MAX_LOG_SIZE_MIN) { gVMCAMaxLogSizeBytes = VMCA_MAX_LOG_SIZE_MIN; } }
unsigned int RpcVMCAGetServerOption( handle_t IDL_handle, unsigned int *pdwOption ) { DWORD dwError = 0; unsigned int dwOption = 0; if (!pdwOption) { dwError = ERROR_INVALID_PARAMETER; BAIL_ON_VMCA_ERROR(dwError); } dwError = VMCACheckAccess(IDL_handle, TRUE); BAIL_ON_VMCA_ERROR(dwError); dwError = VMCAConfigGetDword(VMCA_REG_KEY_SERVER_OPTION, &dwOption); dwError = dwError == ERROR_FILE_NOT_FOUND ? 0: dwError; BAIL_ON_VMCA_ERROR(dwError); *pdwOption = dwOption; cleanup: VMCA_LOG_DEBUG("Exiting %s, Status = %d", __FUNCTION__, dwError); return dwError; error: goto cleanup; }
unsigned int RpcVMCAUnsetServerOption( handle_t IDL_handle, unsigned int dwOption ) { DWORD dwError = 0; unsigned int dwCurrentOption = 0; unsigned int dwNewOption = 0; dwError = VMCACheckAccess(IDL_handle, TRUE); BAIL_ON_VMCA_ERROR(dwError); dwError = VMCAConfigGetDword(VMCA_REG_KEY_SERVER_OPTION, &dwCurrentOption); dwError = dwError == ERROR_FILE_NOT_FOUND ? 0: dwError; BAIL_ON_VMCA_ERROR(dwError); dwNewOption = dwCurrentOption & ~dwOption; dwError = VMCAConfigSetDword(VMCA_REG_KEY_SERVER_OPTION, dwNewOption); BAIL_ON_VMCA_ERROR(dwError); cleanup: VMCA_LOG_DEBUG("Exiting %s, Status = %d", __FUNCTION__, dwError); return dwError; error: goto cleanup; }