A device controller is passed a handle to a DeviceRec with every selector.

Yes, we know, it’s a monster.

typedef struct {
  PrMemoryHandle        deviceData;
  short                 command;
  short                 mode;
  csSDK_int32           timecode;
  short                 timeformat;
  short                 timerate;
  csSDK_int32           features;
  short                 error;
  short                 preroll;
  CallBackPtr           callback;
  PauseProcPtr          PauseProc;
  ResumeProcPtr         ResumeProc
  long                  xtimecode;
  long                  keycode;
  short                 editmode;
  short                 exteditmode;
  Print2TapeProcPtr     PrintProc;
  HWND                  parentWindow;
  piSuitesPtr           piSuites;
  char*                 displayName;
  TimecodeUpdatePtr     TimecodeUpdateProc;
  void*                 classID;
  long                  version;
  short                 videoStreamIsDrop;
  short                 autoDetectDropness;
  char*                 currentDeviceIDStr;
  long                  preferredScale;
  unsigned long         preferredSampleSize;
  DroppedFrameCountPtr  DroppedFrameProc;
  csSDK_uint32          exportAudioChannels;
  csSDK_uint16          exportFlags;
  csSDK_int32           delayFrames;
} DeviceRec, *DevicePtr, **DeviceHand;