title: Not able to include ntifs.h in win32 project
body: <p>I tried to use the function called <code>NTCreateFile</code>. When I compiled it gave me an error saying 
  "_NTCreateFile identifier not found". I inlcuded the header <code>winternl.h</code>. So next I tried to use <code>ZwCreatFile</code>, as per MSDN I included <code>ntifs.h</code>, but I am not able to include that header. It says "not able to open/find the directory". I am using V@2008. What is the problem? Am I missing anything?</p>
  
  <p><strong>EDIT1:</strong></p>
  
  <pre><code>typedef NTSTATUS (*fp_CreatFile)(
      OUT PHANDLE FileHandle,
      IN ACCESS_MASK DesiredAccess,
      IN POBJECT_ATTRIBUTES ObjectAttributes,
      OUT PIO_STATUS_BLOCK IoStatusBlock,
      IN PLARGE_INTEGER AllocationSize OPTIONAL,
      IN ULONG FileAttributes,
      IN ULONG ShareAccess,
      IN ULONG CreateDisposition,
      IN ULONG CreateOptions,
      IN PVOID EaBuffer OPTIONAL,
      IN ULONG EaLength
      );
  OBJECT_ATTRIBUTES myAttributes;
  
  int _tmain(int argc, _TCHAR* argv[])
  {
      fp_CreatFile myFunction;
      HMODULE module = LoadLibrary(L"ntdll.dll");
      if(NULL != module)
      {
          myFunction = (fp_CreatFile)GetProcAddress(module,"NtCreateFile");
      }
  
      UNICODE_STRING string;
      IO_STATUS_BLOCK fileStatus;
      string.Length = 56;
      string.Buffer = L"C:\\user\\kiddo\\Desktop\\7zFM.exe";
      string.MaximumLength = 56;
  
      HANDLE fileHandle;
      myAttributes.ObjectName = &amp;string;
      myAttributes.Length = sizeof(OBJECT_ATTRIBUTES);
      long mystatus = myFunction(&amp;fileHandle,FILE_GENERIC_READ,&amp;myAttributes ,&amp;fileStatus,NULL,FILE_ATTRIBUTE_NORMAL,FILE_SHARE_READ,
          NULL,NULL,NULL,NULL);
      return 0;
  }
  </code></pre>
  
  <p>When it tries to call that it gives the following error in a Message box.
  <strong>ERROR:</strong>
  Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call.  This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.</p>