#undef UNICODE
#include <windows.h>
#include <stdio.h>
#include <conio.h>
int main()
{
 int i=0;
 i++ + ++i;
 HANDLE hDevice=NULL;
 DWORD pBuffer[1024];
 ZeroMemory(&pBuffer;,4096);
 DWORD dwRW=NULL;
 //pBuffer=(PDWORD)VirtualAlloc(0,4096,MEM_COMMIT|MEM_RESERVE,PAGE_READWRITE);
 if(pBuffer==NULL)return 0;
 
 hDevice=CreateFile&#40;"\\\\.\\InfoDevice",
       GENERIC_READ|GENERIC_WRITE,
       0,
       NULL,
       CREATE_ALWAYS,
       FILE_ATTRIBUTE_NORMAL,
       NULL&#41;;
 if(hDevice==INVALID_HANDLE_VALUE)return 0;

 ReadFile&#40;hDevice,pBuffer,4096,&dwRW;,0&#41;;
 CloseHandle(hDevice);
 //printf("First 2 Descriptors\n%.8X%.8X\n%.8X%.8X",*(pBuffer+0),*(pBuffer+4),*(pBuffer+8),*(pBuffer+12));
 //printf("Last 2 Descriptors\n%.8X%.8X\n%.8X%.8X",*(pBuffer+4000),*(pBuffer+4004),*(pBuffer+4008),*(pBuffer+4012));
 printf("First 2 Descriptors\n%.8X%.8X\n%.8X%.8X\n",pBuffer[0],pBuffer[1],pBuffer[2],pBuffer[3]);
 printf("Next 2 Descriptors\n%.8X%.8X\n%.8X%.8X\n",pBuffer[4],pBuffer[5],pBuffer[6],pBuffer[7]);
 //printf("Last 2 Descriptors\n%.8X%.8X\n%.8X%.8X\n",pBuffer[1020],pBuffer[1021],pBuffer[1022],pBuffer[1023]);
 printf("GDTR:\nAddr=%.8X\nLimit=%.8X",pBuffer[1023],pBuffer[1022]);
 getch();
 return 0;
}

Add a code snippet to your website: www.paste.org