/** Initialize the media parameter data for EFI_BLOCK_IO_MEDIA of Block I/O Protocol. @param UsbMass The USB mass storage device @retval EFI_SUCCESS The media parameters are updated successfully. @retval Others Failed to get the media parameters. **/ EFI_STATUS UsbMassInitMedia ( IN USB_MASS_DEVICE *UsbMass ) { EFI_BLOCK_IO_MEDIA *Media; EFI_STATUS Status; Media = &UsbMass->BlockIoMedia; // // Fields of EFI_BLOCK_IO_MEDIA are defined in UEFI 2.0 spec, // section for Block I/O Protocol. // Media->MediaPresent = FALSE; Media->LogicalPartition = FALSE; Media->ReadOnly = FALSE; Media->WriteCaching = FALSE; Media->IoAlign = 0; Media->MediaId = 1; Status = UsbBootGetParams (UsbMass); DEBUG ((DEBUG_INFO, "UsbMassInitMedia: UsbBootGetParams (%r)\n", Status)); if (Status == EFI_MEDIA_CHANGED) { // // Some USB storage devices may report MEDIA_CHANGED sense key when hot-plugged. // Treat it as SUCCESS // Status = EFI_SUCCESS; } return Status; }
/** Initialize the media parameter data for EFI_BLOCK_IO_MEDIA of Block I/O Protocol. @param UsbMass The USB mass storage device @retval EFI_SUCCESS The media parameters are updated successfully. @retval Others Failed to get the media parameters. **/ EFI_STATUS UsbMassInitMedia ( IN USB_MASS_DEVICE *UsbMass ) { EFI_BLOCK_IO_MEDIA *Media; EFI_STATUS Status; Media = &UsbMass->BlockIoMedia; // // Fields of EFI_BLOCK_IO_MEDIA are defined in UEFI 2.0 spec, // section for Block I/O Protocol. // Media->MediaPresent = FALSE; Media->LogicalPartition = FALSE; Media->ReadOnly = FALSE; Media->WriteCaching = FALSE; Media->IoAlign = 0; Media->MediaId = 1; Status = UsbBootGetParams (UsbMass); return Status; }