Доброго времени суток. Подскажите, как при помощи WinApi.DeviceIoControl узнать серийный номер диска?

Получаю дескриптор устройства
## Код:
```
VAR
   hDevice, procHeap3: WinApi.HANDLE;
   lpFileName: WinApi.PtrWSTR;
   p3: WinApi.PtrVoid;
   myType1, myType2: MyType;
BEGIN
   procHeap3 := WinApi.GetProcessHeap();
   p3 := WinApi.HeapAlloc (procHeap3, {}, 19* SIZE(CHAR));
   SYSTEM.PUT (SYSTEM.ADR (lpFileName), p3);
   lpFileName[0] := "\";
   lpFileName[1] := "\";
   lpFileName[2] := ".";
   lpFileName[3] := "\";
   lpFileName[4] := "P";
   lpFileName[5] := "h";
   lpFileName[6] := "y";
   lpFileName[7] := "s";
   lpFileName[8] := "i";
   lpFileName[9] := "c";
   lpFileName[10] := "a";
   lpFileName[11] := "l";
   lpFileName[12] := "D";
   lpFileName[13] := "r";
   lpFileName[14] := "i";
   lpFileName[15] := "v";
   lpFileName[16] := "e";
   lpFileName[17] := "0";
   lpFileName[18] := 0X;
   hDevice := WinApi.CreateFileW (lpFileName, {}, WinApi.FILE_SHARE_WRITE, NIL,  WinApi.OPEN_EXISTING, {}, 0);
   IF hDevice # WinApi.INVALID_HANDLE_VALUE THEN
      ???
   ELSE
      StdLog.String ("Ошибка при получении дескриптора файла")
   END
```

Вроде не ругается, а как дальше применить WinApi.DeviceIoControl - не знаю, а именно: что указать в коде управления операции (dwIoControlCode) и как работать с lpInBuffer, lpOutBuffer: PtrVoid?