/* Function to detemine if a handle has removable storage. */
BOOLEAN IsRemoveableDevice(IN EFI_DEVICE_PATH_PROTOCOL *DevicePath)
/* Function to detemine if a handle has removable storage. */
BOOLEAN IsRemoveableDevice(IN EFI_DEVICE_PATH_PROTOCOL *DevicePath)
{
  if (NULL == DevicePath) {
    return FALSE;
  }
  while (!IsDevicePathEndType (DevicePath)) {
    if (DevicePathType (DevicePath) == MESSAGING_DEVICE_PATH) {
      switch (DevicePathSubType (DevicePath)) {
        case MSG_USB_DP:
        case MSG_SCSI_DP:
          return TRUE;
        default:
          return FALSE;
      }
    }
    DevicePath = NextDevicePathNode (DevicePath);
  }
  return FALSE;
}