- Implement AllocateUserPhysicalPages, FreeUserPhysicalPages, MapUserPhysicalPages, MapUserPhysicalPagesScatter, ResetWriteWatch

- Fix return value for CreateSocketHandle
- Fix arguments for DelayLoadFailureHook (see http://msdn.microsoft.com/en-us/library/bb432244(VS.85).aspx)

svn path=/trunk/; revision=38819
This commit is contained in:
Dmitry Chapyshev 2009-01-17 15:27:35 +00:00
parent afcde1e39c
commit 0ca8d1847a
2 changed files with 133 additions and 83 deletions

View file

@ -289,11 +289,140 @@ GetWriteWatch(
if (!NT_SUCCESS(Status))
{
SetLastError(RtlNtStatusToDosError(Status));
SetLastErrorByStatus(Status);
return -1;
}
return 0;
}
/*
* @implemented
*/
UINT
WINAPI
ResetWriteWatch(
LPVOID lpBaseAddress,
SIZE_T dwRegionSize
)
{
NTSTATUS Status;
Status = NtResetWriteWatch(NtCurrentProcess(),
lpBaseAddress,
dwRegionSize);
if (!NT_SUCCESS(Status))
{
SetLastErrorByStatus(Status);
return -1;
}
return 0;
}
/*
* @implemented
*/
BOOL
WINAPI
AllocateUserPhysicalPages(
HANDLE hProcess,
PULONG_PTR NumberOfPages,
PULONG_PTR UserPfnArray
)
{
NTSTATUS Status;
Status = NtAllocateUserPhysicalPages(hProcess,
NumberOfPages,
UserPfnArray);
if (!NT_SUCCESS(Status))
{
SetLastErrorByStatus(Status);
return FALSE;
}
return TRUE;
}
/*
* @implemented
*/
BOOL
WINAPI
FreeUserPhysicalPages(
HANDLE hProcess,
PULONG_PTR NumberOfPages,
PULONG_PTR PageArray
)
{
NTSTATUS Status;
Status = NtFreeUserPhysicalPages(hProcess,
NumberOfPages,
PageArray);
if (!NT_SUCCESS(Status))
{
SetLastErrorByStatus(Status);
return FALSE;
}
return TRUE;
}
/*
* @implemented
*/
BOOL
WINAPI
MapUserPhysicalPages(
PVOID VirtualAddress,
ULONG_PTR NumberOfPages,
PULONG_PTR PageArray OPTIONAL
)
{
NTSTATUS Status;
Status = NtMapUserPhysicalPages(VirtualAddress,
NumberOfPages,
PageArray);
if (!NT_SUCCESS(Status))
{
SetLastErrorByStatus(Status);
return FALSE;
}
return TRUE;
}
/*
* @implemented
*/
BOOL
WINAPI
MapUserPhysicalPagesScatter(
PVOID *VirtualAddresses,
ULONG_PTR NumberOfPages,
PULONG_PTR PageArray OPTIONAL
)
{
NTSTATUS Status;
Status = NtMapUserPhysicalPagesScatter(VirtualAddresses,
NumberOfPages,
PageArray);
if (!NT_SUCCESS(Status))
{
SetLastErrorByStatus(Status);
return FALSE;
}
return TRUE;
}
/* EOF */

View file

@ -292,21 +292,6 @@ VirtualBufferExceptionHandler (
return 0;
}
/*
* @unimplemented
*/
BOOL
WINAPI
AllocateUserPhysicalPages(
HANDLE hProcess,
PULONG_PTR NumberOfPages,
PULONG_PTR UserPfnArray
)
{
STUB;
return 0;
}
/*
* @implemented
*/
@ -360,22 +345,6 @@ FindVolumeMountPointClose(
return 0;
}
/*
* @unimplemented
*/
BOOL
WINAPI
FreeUserPhysicalPages(
HANDLE hProcess,
PULONG_PTR NumberOfPages,
PULONG_PTR PageArray
)
{
STUB;
return 0;
}
/*
* @unimplemented
*/
@ -450,36 +419,6 @@ HeapSetInformation (
return 0;
}
/*
* @unimplemented
*/
BOOL
WINAPI
MapUserPhysicalPages(
PVOID VirtualAddress,
ULONG_PTR NumberOfPages,
PULONG_PTR PageArray OPTIONAL
)
{
STUB;
return 0;
}
/*
* @unimplemented
*/
BOOL
WINAPI
MapUserPhysicalPagesScatter(
PVOID *VirtualAddresses,
ULONG_PTR NumberOfPages,
PULONG_PTR PageArray OPTIONAL
)
{
STUB;
return 0;
}
/*
* @implemented
*/
@ -535,20 +474,6 @@ RemoveVectoredExceptionHandler(
return 0;
}
/*
* @unimplemented
*/
UINT
WINAPI
ResetWriteWatch(
LPVOID lpBaseAddress,
SIZE_T dwRegionSize
)
{
STUB;
return 0;
}
/*
* @unimplemented
*/
@ -935,7 +860,7 @@ DWORD WINAPI GetHandleContext(HANDLE hnd)
HANDLE WINAPI CreateSocketHandle(VOID)
{
STUB;
return 0;
return INVALID_HANDLE_VALUE;
}
/*
@ -970,14 +895,10 @@ VOID WINAPI UTUnRegister( HMODULE hModule )
/*
* @unimplemented
*/
#if 0
FARPROC WINAPI DelayLoadFailureHook(unsigned int dliNotify, PDelayLoadInfo pdli)
#else
FARPROC WINAPI DelayLoadFailureHook(unsigned int dliNotify, PVOID pdli)
#endif
FARPROC WINAPI DelayLoadFailureHook(LPCSTR pszDllName, LPCSTR pszProcName)
{
STUB;
return 0;
return NULL;
}
/*