-/* $Id: section.c,v 1.25 2004/05/25 20:04:14 navaraf Exp $
+/* $Id: section.c,v 1.26 2004/08/28 22:16:27 navaraf Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
NTSTATUS Status;
HANDLE SectionHandle;
LARGE_INTEGER MaximumSize;
+ PLARGE_INTEGER MaximumSizePointer;
OBJECT_ATTRIBUTES ObjectAttributes;
ANSI_STRING AnsiName;
UNICODE_STRING UnicodeName;
PSECURITY_DESCRIPTOR SecurityDescriptor;
- IO_STATUS_BLOCK IoStatusBlock;
- FILE_STANDARD_INFORMATION FileStandard;
if ((flProtect & (MASK_PAGE_FLAGS | MASK_SEC_FLAGS)) != flProtect)
{
SecurityDescriptor = NULL;
}
- if((dwMaximumSizeLow==0)&&(dwMaximumSizeHigh==0))
- {
- // MSDN: If dwMaximumSizeLow and dwMaximumSizeHigh are zero, the maximum size of the
- // file-mapping object is equal to the current size of the file identified by hFile.
- Status = NtQueryInformationFile(hFile,
- &IoStatusBlock,
- &FileStandard,
- sizeof(FILE_STANDARD_INFORMATION),
- FileStandardInformation);
- if (!NT_SUCCESS(Status))
- {
- DPRINT("Status 0x%08x obtaining FileStandardInformation for source\n", Status);
- SetLastErrorByStatus(Status);
- return NULL;
- }
- MaximumSize = FileStandard.EndOfFile;
- } else {
- MaximumSize.u.LowPart = dwMaximumSizeLow;
- MaximumSize.u.HighPart = dwMaximumSizeHigh;
- }
+ if (dwMaximumSizeLow == 0 && dwMaximumSizeHigh == 0)
+ {
+ MaximumSizePointer = NULL;
+ }
+ else
+ {
+ MaximumSize.u.LowPart = dwMaximumSizeLow;
+ MaximumSize.u.HighPart = dwMaximumSizeHigh;
+ MaximumSizePointer = &MaximumSize;
+ }
RtlInitAnsiString(&AnsiName,
(LPSTR)lpName);
RtlAnsiStringToUnicodeString(&UnicodeName,
Status = NtCreateSection(&SectionHandle,
SECTION_ALL_ACCESS,
&ObjectAttributes,
- &MaximumSize,
+ MaximumSizePointer,
flProtect & MASK_PAGE_FLAGS,
flProtect & MASK_SEC_FLAGS,
hFile==INVALID_HANDLE_VALUE ? NULL : hFile);
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING UnicodeName;
PSECURITY_DESCRIPTOR SecurityDescriptor;
- IO_STATUS_BLOCK IoStatusBlock;
- FILE_STANDARD_INFORMATION FileStandard;
if ((flProtect & (MASK_PAGE_FLAGS | MASK_SEC_FLAGS)) != flProtect)
{
SecurityDescriptor = NULL;
}
- if ((dwMaximumSizeLow == 0) && (dwMaximumSizeHigh == 0))
+ if (dwMaximumSizeLow == 0 && dwMaximumSizeHigh == 0)
{
- // MSDN: If dwMaximumSizeLow and dwMaximumSizeHigh are zero, the maximum size of the
- // file-mapping object is equal to the current size of the file identified by hFile.
- Status = NtQueryInformationFile(hFile,
- &IoStatusBlock,
- &FileStandard,
- sizeof(FILE_STANDARD_INFORMATION),
- FileStandardInformation);
- if (!NT_SUCCESS(Status))
- {
- DPRINT("Status 0x%08x obtaining FileStandardInformation for source\n", Status);
- SetLastErrorByStatus(Status);
- return NULL;
- }
- MaximumSize = FileStandard.EndOfFile;
- MaximumSizePointer = &MaximumSize;
+ MaximumSizePointer = NULL;
}
else
{
- MaximumSize.u.LowPart = dwMaximumSizeLow;
- MaximumSize.u.HighPart = dwMaximumSizeHigh;
- MaximumSizePointer = &MaximumSize;
+ MaximumSize.u.LowPart = dwMaximumSizeLow;
+ MaximumSize.u.HighPart = dwMaximumSizeHigh;
+ MaximumSizePointer = &MaximumSize;
}
RtlInitUnicodeString(&UnicodeName,
lpName);