internal void GetHidFeatureReport(byte[] featureReport)
 {
     // NOTE: Keep this method internal for a while.
     if (featureReport == null || featureReport.Length >= 256)
     {
         throw new ArgumentException("featureReport is null or too large.", "featureReport");
     }
     // TODO: It can be important to wait before Get.
     if (WaitTimeInMillisecondsBeforeGetFeatureReport > 0)
     {
         while (HidStopwatch.ElapsedMilliseconds <= WaitTimeInMillisecondsBeforeGetFeatureReport)
         {
             System.Threading.Thread.Sleep(1);
         }
     }
     // NOTE: Exceptions can occur.  But this method does NOT catch them here.
     Win32HidSimpleAccess.GetFeatureReport(HidDeviceDevicePath, featureReport);
     if (WaitTimeInMillisecondsBeforeGetFeatureReport > 0)
     {
         HidStopwatch.Reset(); HidStopwatch.Start();
     }
 }