HANDLE hDevice = NULL;
DWORD output = 0;
hDevice=CreateFile("\\\\.\\PhysicalDrive1",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL);
for(int i = 0; i < 200; i++)
{
// Since the DRIVE_LAYOUT_INFORMATION_EX has one PARTITION_INFORMATION_EX,
// you don't need to allocate the first one.
size_t bufSize = sizeof(DRIVE_LAYOUT_INFORMATION_EX) + i *sizeof(PARTITION_INFORMATION_EX);
char *pbuff = new char[bufSize];
ZeroMemory(pbuff,bufSize);