NTSTATUS
PopSetThrottle(
  IN  PPROCESSOR_POWER_STATE  PState,
  IN  PPROCESSOR_PERF_STATE   PerfStates,
  IN  ULONG                   Index,
  IN  ULONG                   SystemTime,
  IN  ULONG                   IdleTime
  );

Routine Description:

    This routine is called when we want to set the throttle on the processor
    associated with the PState element. Since each processor gets a unique
    PState, this is guaranteed to only apply the throttle to a single
    processor.

    N.B. Since this routine is also responsible for updating the bookkeeping,
    then if a failure occurs when trying to set the throttle, there is no
    need to return a failure code --- the system state will have not been
    updated and the caller will (eventually) retry

    N.B. This routine can only be called at DISPATCH_LEVEL while running
    on the target processor

Arguments:

    PState      - Power State information about the target processor
    PerfStates  - Array of Perf States that apply to that processor
    Index       - Which perf state to transition to
    SystemTime  - Elapsed System Time (for bookkeeping)
    IdleTime    - Elapsed Idle Time (for bookkeeping)