| Index: chrome/browser/extensions/api/image_writer_private/removable_storage_provider_win.cc
|
| diff --git a/chrome/browser/extensions/api/image_writer_private/removable_storage_provider_win.cc b/chrome/browser/extensions/api/image_writer_private/removable_storage_provider_win.cc
|
| index cfd232431dc0b9eda5b3fcaca4f9e3876fc2ac51..aeeb83728501e0c87f2c9fdfee68e3ecc7354e7b 100644
|
| --- a/chrome/browser/extensions/api/image_writer_private/removable_storage_provider_win.cc
|
| +++ b/chrome/browser/extensions/api/image_writer_private/removable_storage_provider_win.cc
|
| @@ -7,6 +7,7 @@
|
| #include <setupapi.h>
|
| #include <winioctl.h>
|
|
|
| +#include "base/strings/string_number_conversions.h"
|
| #include "base/strings/string_util.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "base/win/scoped_handle.h"
|
| @@ -126,12 +127,30 @@ bool AddDeviceInfo(HANDLE interface_enumerator,
|
| return true;
|
| }
|
|
|
| + // Create a drive identifier from the drive number.
|
| + STORAGE_DEVICE_NUMBER device_number = {0};
|
| + status = DeviceIoControl(
|
| + device_handle, // Device handle.
|
| + IOCTL_STORAGE_GET_DEVICE_NUMBER,// Flag to request device number.
|
| + NULL, // Query parameters, should be NULL.
|
| + 0, // Query parameters size, should be 0.
|
| + &device_number, // output buffer.
|
| + sizeof(device_number), // Size of buffer.
|
| + &bytes_returned, // Number of bytes returned.
|
| + NULL); // Optional unused overlapped perameter.
|
| +
|
| + if (status == FALSE) {
|
| + PLOG(ERROR) << "Storage device number query failed.";
|
| + return false;
|
| + }
|
| +
|
| + std::string drive_id = "\\\\.\\PhysicalDrive";
|
| + drive_id.append(base::Uint64ToString(device_number.DeviceNumber));
|
| +
|
| linked_ptr<api::image_writer_private::RemovableStorageDevice> device(
|
| new api::image_writer_private::RemovableStorageDevice());
|
| device->capacity = disk_capacity;
|
| -
|
| - base::string16 device_path_16(interface_detail_data->DevicePath);
|
| - device->storage_unit_id = base::UTF16ToUTF8(device_path_16);
|
| + device->storage_unit_id = drive_id;
|
|
|
| if (device_descriptor->VendorIdOffset &&
|
| output_buf[device_descriptor->VendorIdOffset]) {
|
|
|