Hi,
Well the code subroutines have safeguards placed in them. We know this
due to research and trial studies. These safeguards are located in
target and most called functions.
A good example of an emulation hack that I have seen is this:
if(!bmi){
if(bits) *bits = NULL;
return NULL;
}
Taken from wine (Do I need to post copyright notice for this too Mr.
Edwards?), function CreateDIBSection.
This is a behavioral hack to emulate the correct test case results for
this function.
UINT
FASTCALL
DIB_BitmapMaxBitsSize( PBITMAPINFO Info, UINT ScanLines )
{
UINT MaxBits = 0;
if (!Info) return 0;
UINT
FASTCALL
DIB_BitmapBitsSize( PBITMAPINFO Info )
{
UINT Ret;
if (!Info) return 0;
These are magnificently correct and create an one byte allocated space
with RtlAllocateHeap as it should and pass the one byte pointer to
kernel space since this is also correct behavior for most these
related kernel space functions. Zero bytes are copied and the kernel
functions with defaults settings and it passes or fails in kernel
space. Which is why we are correcting kernel space function behavior.
I am very surprised you did not know this,,,, read the code train,,,
James
puzzled, B^/