1
원시 sd 카드를 읽고 쓰려면 C# 및 pinvoke를 사용하고 있습니다. diskGeo.DiskSize이 1011709440. 이유는, (1) 지브의 SD 카드와deviceiocontrol 및 디스크 크기 질문
[StructLayout(LayoutKind.Sequential)]
public struct DISK_GEOMETRY
{
public long Cylinders;
public int MediaType;
public int TracksPerCylinder;
public int SectorsPerTrack;
public int BytesPerSector;
public long DiskSize
{
get
{
return Cylinders * (long)TracksPerCylinder * (long)SectorsPerTrack * (long)BytesPerSector;
}
}
}
...
uint dummy;
DISK_GEOMETRY diskGeo = new DISK_GEOMETRY();
DeviceIoControl(safeHandle, EIOControlCode.DiskGetDriveGeometry, IntPtr.Zero, 0,
ref diskGeo, (uint)Marshal.SizeOf(typeof(DISK_GEOMETRY)), out dummy, IntPtr.Zero);
this.sectorSize = diskGeo.BytesPerSector;
this.bufferSize = this.sectorSize * 16384;
this.diskSize = diskGeo.DiskSize;
: 나는 DeviceIoControl을 가진 전체 용량을 얻을 필요가?
고마워요, 제가 찾던 답변입니다. pinvoke를 사용하여 파티션의 정보를 지울 필요가 있습니다. 마지막 참고 사항 : hexplorer을 사용하면 1073741824 바이트, 전체 1 GiB를 읽고 쓸 수 있습니다. – ric