Forum: Programmieren allgemein
by Neutral General,
12. Mär 2007
procedure TForm1.Button6Click(Sender: TObject);
var H: THandle;
P: PDRIVE_LAYOUT_INFORMATION_EX;
outBytes: Cardinal;
Size: Cardinal;
begin
H := CreateFile('\\.\PhysicalDrive0', GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
Size := SizeOf(_DRIVE_LAYOUT_INFORMATION_EX) + SizeOf(_PARTITION_INFORMATION_EX) * 31;
Forum: Programmieren allgemein
by Neutral General,
12. Mär 2007
Hi,
Also mit
SELECT * FROM Win32_DiskDriveToDiskPartition WHERE Antecedent = "\\.\PhysicalDrive0"
erreiche ich auch nix (y = nil)...
Forum: Programmieren allgemein
by Neutral General,
12. Mär 2007
Also mein Problem liegt im Moment hauptsächlich bei GetMem^^
procedure GetMem(var P: Pointer; Size: Integer);
So ist das bei mir definiert. Und
DLI := GetMem(SizeOf(_DRIVE_LAYOUT_INFORMATION_EX)
+ SizeOf(_PARTITION_INFORMATION_EX) * 31);
funktioniert daher auch nicht so toll....
Forum: Programmieren allgemein
by Neutral General,
12. Mär 2007
Ok danke aber woher weiß ich wie viele Partitionen auf der Festplatte drauf sind ? o.O
Forum: Programmieren allgemein
by Neutral General,
12. Mär 2007
Ok danke aber was heißt das hier:
_PARTITION_INFORMATION_EX = record
PartitionStyle: PARTITION_STYLE;
StartingOffset: LARGE_INTEGER;
PartitionLength: LARGE_INTEGER;
PartitionNumber: ULONG;
RewritePartition: Boolean;
case Integer of
Forum: Programmieren allgemein
by Neutral General,
12. Mär 2007
--------- __________ -----------
Die Schweine. Das wollte ich doch machen :roll:
Pf.. Ich machs trotzdem -.-
PS: Danke ;)
PPS: Wobei das Problem auch noch bei ULong64 liegt.. Die benutzen da ein DWORD64. Sowas existiert bei mir aber nicht..
PPPS: Ich seh grad die definieren ULong64 als Int64... Ehm naja ich weiß zwar nicht seit wann Integers unsigned sind aber egal :wall:
Forum: Programmieren allgemein
by Neutral General,
12. Mär 2007
Hi,
Auf Assabards Seite habe ich folgende Übersetzung gefunden
union {
struct {
DWORD Signature;
DWORD CheckSum;
} Mbr;