OK, więc krótka odpowiedź na moje pytanie brzmi: można zabezpieczyć Załóżmy, że ten rozmiar sektora dla dysków DVD/BD = 2048 bajtów.
Powodem, dlaczego ja dostawałem różne rozmiary podczas moich sesji debugowania, z powodu błędu w kodzie, które pobierane liczyć sektory :)
Wspomniany blok kod został copypasted z http://www.codeproject.com/Articles/24544/Burning-and-Erasing-CD-DVD-Blu-ray-Media-with-C-an, więc na wszelki wypadek im delegowania szybka naprawa.
oryginalny kod:
discFormatData = new MsftDiscFormat2Data();
discFormatData.Recorder = discRecorder;
IMAPI_MEDIA_PHYSICAL_TYPE mediaType = discFormatData.CurrentPhysicalMediaType;
fileSystemImage = new MsftFileSystemImage();
fileSystemImage.ChooseImageDefaultsForMediaType(mediaType);
if (!discFormatData.MediaHeuristicallyBlank)
{
fileSystemImage.MultisessionInterfaces = discFormatData.MultisessionInterfaces;
fileSystemImage.ImportFileSystem();
}
Int64 freeMediaBlocks = fileSystemImage.FreeMediaBlocks;
kod stały:
discFormatData = new MsftDiscFormat2Data { Recorder = discRecorder };
fileSystemImage = new MsftFileSystemImage();
fileSystemImage.ChooseImageDefaults(discRecorder);
if (!discFormatData.MediaHeuristicallyBlank)
{
fileSystemImage.MultisessionInterfaces = discFormatData.MultisessionInterfaces;
fileSystemImage.ImportFileSystem();
}
Int64 freeMediaBlocks = fileSystemImage.FreeMediaBlocks;
Dlaczego nie WMI to opcja? – PhonicUK
@ S.L. Barth, nie sądzę. –
@PhonicUK, przeszłe doświadczenie :) Będę z niego korzystać, jeśli nie ma innego sposobu. Miałem nadzieję uzyskać te wartości przez IMAPI, tbh. –