Recognize a HDD serial number

Use GetVolumeInformation function, like this example:

procedure TForm1.Button1Click(Sender: TObject);
var
  SerialNum: DWord;
  A,B: DWord;
  C: array [0..255] of Char;
  Buffer: array [0..255] of Char;
begin
  if GetVolumeInformation(
    PChar('C:\'),
    Buffer,
    256,
    @SerialNum,
    A,
    B,
    C,
    256) then Label1.Caption:=IntToStr(SerialNum);
end;