Tweak to hopefully make lookaside lists work on amd64: in Windows, the
nll_obsoletelock field in the lookaside list structure is only defined for the i386 arch. For amd64, the field is gone, and different list update routines are used which do their locking internally. Apparently the Inprocomm amd64 driver uses lookaside lists. I'm not positive this will make it work yet since I don't have an Inprocomm NIC to test, but this needs to be fixed anyway.
This commit is contained in:
parent
97b4ef94b5
commit
9a1c9424cf
@ -428,7 +428,9 @@ typedef struct general_lookaside general_lookaside;
|
||||
|
||||
struct npaged_lookaside_list {
|
||||
general_lookaside nll_l;
|
||||
#ifdef __i386__
|
||||
kspin_lock nll_obsoletelock;
|
||||
#endif
|
||||
};
|
||||
|
||||
typedef struct npaged_lookaside_list npaged_lookaside_list;
|
||||
@ -654,7 +656,7 @@ typedef struct devobj_extension devobj_extension;
|
||||
#define IRP_MN_MOUNT_VOLUME 0x01
|
||||
#define IRP_MN_VERIFY_VOLUME 0x02
|
||||
#define IRP_MN_LOAD_FILE_SYSTEM 0x03
|
||||
#define IRP_MN_TRACK_LINK 0x04 // To be obsoleted soon
|
||||
#define IRP_MN_TRACK_LINK 0x04
|
||||
#define IRP_MN_KERNEL_CALL 0x04
|
||||
|
||||
#define IRP_MN_LOCK 0x01
|
||||
|
@ -1530,7 +1530,9 @@ ExInitializePagedLookasideList(lookaside, allocfunc, freefunc,
|
||||
else
|
||||
lookaside->nll_l.gl_freefunc = freefunc;
|
||||
|
||||
#ifdef __i386__
|
||||
KeInitializeSpinLock(&lookaside->nll_obsoletelock);
|
||||
#endif
|
||||
|
||||
lookaside->nll_l.gl_depth = LOOKASIDE_DEPTH;
|
||||
lookaside->nll_l.gl_maxdepth = LOOKASIDE_DEPTH;
|
||||
@ -1580,7 +1582,9 @@ ExInitializeNPagedLookasideList(lookaside, allocfunc, freefunc,
|
||||
else
|
||||
lookaside->nll_l.gl_freefunc = freefunc;
|
||||
|
||||
#ifdef __i386__
|
||||
KeInitializeSpinLock(&lookaside->nll_obsoletelock);
|
||||
#endif
|
||||
|
||||
lookaside->nll_l.gl_depth = LOOKASIDE_DEPTH;
|
||||
lookaside->nll_l.gl_maxdepth = LOOKASIDE_DEPTH;
|
||||
|
Loading…
x
Reference in New Issue
Block a user