USB Device Boot Burn Manager
iBurnMgr — это менеджер записи загрузочного раздела на USB-накопители в современном стиле.
iBurnMgr разработан с использованием C++, работает в Windows, на рабочем USB-диске установки Windows 10. В iBurnMgr используется фреймворк WTL, применяются функции Direct2D для отрисовки кнопок Push Button, Close и Minimize, а также фонов и функциональных областей. Текст выводится с помощью DirectWrite, MessageBox заменён на TaskDialog.
Форматирование USB-флеш-накопителя происходит с помощью инструментов format.com, которые полагаются на Windows. Распаковка образа ISO выполняется с помощью 7z, восстановление USB-флешки — с помощью bootsect.exe из ADK для Windows. Во втором или третьем издании iBurnMgr будет устранена зависимость от сторонних инструментов.
В настоящее время iBurnMgr поддерживает многоязычность.
Сейчас iBurnMgr не может быть собран под Win32!
BOOL WINAPI IVdsVolumeFormat(
LPCWSTR latter,
LPWSTR pwszLabel,
FormatFailedCallback fcall,
void *data)
{
if (!VAILED_LATTER(latter[0]) || latter[1] != ':') return FALSE;
HRESULT hr, AsyncHr;
IVdsAsync *pAsync = NULL;
VDS_ASYNC_OUTPUT AsyncOut;
hr = CoInitializeSecurity(
NULL,
-1,
NULL,
NULL,
RPC_C_AUTHN_LEVEL_CONNECT,
RPC_C_IMP_LEVEL_IMPERSONATE,
NULL,
0,
NULL
);
IVdsServiceLoader *pLoader;
IUnknown *pUnk;
ULONG ulFetched = 0;
hr = CoCreateInstance(CLSID_VdsLoader,
NULL,
CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER,
IID_IVdsServiceLoader,
(void **)&pLoader
);
if (hr != S_OK) return false;
IVdsService *pService;
hr = pLoader->LoadService(NULL, &pService);
pLoader->Release();
pLoader = NULL;
if (hr != S_OK){
if (fcall){
fcall(ErrorCodesMessage(hr), data);
}
return FALSE;
}
VDS_DRIVE_LETTER_PROP mDriveLetterPropArray[1];
hr = pService->QueryDriveLetters(latter[0], 1, mDriveLetterPropArray);
if (hr != S_OK){
goto _bailout;
}
hr = pService->GetObjectW(mDriveLetterPropArray->volumeId, VDS_OT_VOLUME, &pUnk);
if (hr != S_OK){
goto _bailout;
}
IVdsVolume *pVolume;
hr = pUnk->QueryInterface(IID_IVdsVolume, (void **)&pVolume);
if (hr != S_OK){
SAFE_RELEASE(pUnk);
goto _bailout;
}
IVdsVolumeMF3 *pVolumeMF3;
hr = pVolume->QueryInterface(IID_IVdsVolumeMF3, (void **)&pVolumeMF3);
hr = pVolumeMF3->FormatEx2(L"NTFS", 1, 0, pwszLabel, VDS_FSOF_QUICK, &pAsync);
hr = pAsync->Wait(&AsyncHr, &AsyncOut);
if (FAILED(hr)){
if (fcall){
fcall(ErrorCodesMessage(hr), data);
}
}
else if (FAILED(AsyncHr)){
if (fcall){
fcall(ErrorCodesMessage(hr), data);
}
}
else{
if (fcall){
fcall(L"Format volume Success done. ", data);
}
}
SAFE_RELEASE(pVolume);
SAFE_ORELASE(pVolumeMF3);
_bailout:
SAFE_RELEASE(pService);
CoUninitialize();
return hr==S_OK;
}
7z x file.iso -aoa -y -o X:\
bootsect /NT60 X:
Запустите WDExpress [VisualStudio 2012(2013) для рабочего стола] или введите команду:
msbuild iBurnMgr.sln /t:Rebuild /p:Configuration=Release
Дважды щёлкните по iBurnMgr.exe или запустите программу с правами администратора.
Удачи!
Новый интерфейс:
Китайский интерфейс:
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.