We enabled X64 native version NT32, and made it works on Windows 7 X64 OS.

Signed-off-by: Jiamin Ma <mjmthy@gmail.com>
Reviewed by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed by: Liming Gao <liming.gao@intel.com>
Reviewed by: Jiewen Yao <jiewen.yao@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14766 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Jiamin Ma
2013-10-12 06:31:55 +00:00
committed by jyao1
parent 09acdc0b24
commit f66a43b26e
17 changed files with 234 additions and 62 deletions

View File

@@ -529,7 +529,7 @@ Returns:
BlockIo = &Private->BlockIo;
BlockIo->Revision = EFI_BLOCK_IO_PROTOCOL_REVISION;
BlockIo->Media = &Private->Media;
BlockIo->Media->BlockSize = Private->BlockSize;
BlockIo->Media->BlockSize = (UINT32)Private->BlockSize;
BlockIo->Media->LastBlock = Private->NumberOfBlocks - 1;
BlockIo->Media->MediaId = 0;;
@@ -626,10 +626,10 @@ Returns:
//
Private->NtHandle = Private->WinNtThunk->CreateFile (
Private->Filename,
Private->ReadMode,
Private->ShareMode,
(DWORD)Private->ReadMode,
(DWORD)Private->ShareMode,
NULL,
Private->OpenMode,
(DWORD)Private->OpenMode,
0,
NULL
);
@@ -658,7 +658,7 @@ Returns:
Status = SetFilePointer64 (Private, 0, &FileSize, FILE_END);
if (EFI_ERROR (Status)) {
FileSize = MultU64x32 (Private->NumberOfBlocks, Private->BlockSize);
FileSize = MultU64x32 (Private->NumberOfBlocks, (UINT32)Private->BlockSize);
if (Private->DeviceType == EfiWinNtVirtualDisks) {
DEBUG ((EFI_D_ERROR, "PlOpenBlock: Could not get filesize of %s\n", Private->Filename));
Status = EFI_UNSUPPORTED;
@@ -667,10 +667,10 @@ Returns:
}
if (Private->NumberOfBlocks == 0) {
Private->NumberOfBlocks = DivU64x32 (FileSize, Private->BlockSize);
Private->NumberOfBlocks = DivU64x32 (FileSize, (UINT32)Private->BlockSize);
}
EndOfFile = MultU64x32 (Private->NumberOfBlocks, Private->BlockSize);
EndOfFile = MultU64x32 (Private->NumberOfBlocks, (UINT32)Private->BlockSize);
if (FileSize != EndOfFile) {
//
@@ -832,7 +832,7 @@ Returns:
return EFI_MEDIA_CHANGED;
}
if ((UINT32) Buffer % Private->Media.IoAlign != 0) {
if ((UINTN) Buffer % Private->Media.IoAlign != 0) {
return EFI_INVALID_PARAMETER;
}
@@ -858,7 +858,7 @@ Returns:
//
// Seek to End of File
//
DistanceToMove = MultU64x32 (Lba, BlockSize);
DistanceToMove = MultU64x32 (Lba, (UINT32)BlockSize);
Status = SetFilePointer64 (Private, DistanceToMove, &DistanceMoved, FILE_BEGIN);
if (EFI_ERROR (Status)) {