[PATCH 1/3] Update POOL_TYPE enumeration based on MSDN

Derek Lesho dereklesho52 at gmail.com
Sun Sep 2 23:11:03 CDT 2018


I see, thanks for clearing that up.  Looking further, it looks like
the NonPagedPoolExecute value was only added in Windows 8.  Either
way, even when the windows version in wine is set to windows 7,
BEDaisy.sys does use ExAllocatePoolWithTag with a POOL_TYPE of 1 and
tries to execute it.  Maybe all paged memory allocated in the kernel
is executable?
On Sun, Sep 2, 2018 at 10:24 PM Zebediah Figura <z.figura12 at gmail.com> wrote:
>
> On 01/09/18 00:40, Derek Lesho wrote:
> > Update POOL_TYPE enum to include types listed on MSDN, including
> > NonPagedPoolExecute, which is needed for Battleye.
> >
> > Signed-off-by: Derek Lesho <dereklesho52 at Gmail.com>
> > ---
> >  include/ddk/wdm.h | 31 +++++++++++++++++++++++--------
> >  1 file changed, 23 insertions(+), 8 deletions(-)
> >
> > diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h
> > index 0cd1673dbe..a639b3c7b7 100644
> > --- a/include/ddk/wdm.h
> > +++ b/include/ddk/wdm.h
> > @@ -183,14 +183,29 @@ typedef struct _VPB {
> >  } VPB, *PVPB;
> >
> >  typedef enum _POOL_TYPE {
> > -  NonPagedPool,
> > -  PagedPool,
> > -  NonPagedPoolMustSucceed,
> > -  DontUseThisType,
> > -  NonPagedPoolCacheAligned,
> > -  PagedPoolCacheAligned,
> > -  NonPagedPoolCacheAlignedMustS,
> > -  MaxPoolType
> > +  NonPagedPool                          ,
> > +  NonPagedPoolExecute                   ,
> > +  PagedPool                             ,
> > +  NonPagedPoolMustSucceed               ,
> > +  DontUseThisType                       ,
> > +  NonPagedPoolCacheAligned              ,
> > +  PagedPoolCacheAligned                 ,
> > +  NonPagedPoolCacheAlignedMustS         ,
> > +  MaxPoolType                           ,
> > +  NonPagedPoolBase                      ,
> > +  NonPagedPoolBaseMustSucceed           ,
> > +  NonPagedPoolBaseCacheAligned          ,
> > +  NonPagedPoolBaseCacheAlignedMustS     ,
> > +  NonPagedPoolSession                   ,
> > +  PagedPoolSession                      ,
> > +  NonPagedPoolMustSucceedSession        ,
> > +  DontUseThisTypeSession                ,
> > +  NonPagedPoolCacheAlignedSession       ,
> > +  PagedPoolCacheAlignedSession          ,
> > +  NonPagedPoolCacheAlignedMustSSession  ,
> > +  NonPagedPoolNx                        ,
> > +  NonPagedPoolNxCacheAligned            ,
> > +  NonPagedPoolSessionNx
> >  } POOL_TYPE;
> >
> >  typedef struct _WAIT_CONTEXT_BLOCK {
> >
>
> MSDN, like the SDK headers, is copyrighted; you can't copy and paste
> directly from it.
>
> Moreover, this changes the values for some existing types, which doesn't
> seem correct. MSDN even says that NonPagedPoolExecute is a synonym for
> NonPagedPool.
>
>



More information about the wine-devel mailing list