How to use large memory page in disk driver

L

luxiaojun

Guest
Currently we are making a large SCSI disk driver for Windows. In the
READ CAPACITY command, I set the sector size 8K, but the system crashed
in the READ(10) command, it shows:

Cannot get _POOL_TRACKER_BIG_PAGES type size
MODULE_NAME: nt
FAULTING_MODULE: 804e0000 nt
DEBUG_FLR_IMAGE_TIMESTAMP: 3e8015c6
POOL_ADDRESS: 863ec800
BUGCHECK_STR: 0xc2_7
DEFAULT_BUCKET_ID: DRIVER_FAULT
LAST_CONTROL_TRANSFER: from 80545108 to 804e11c0
STACK_TEXT:
WARNING: Stack unwind information not available. Following frames may
be wrong.
f7899fd8 80545108 00000003 00000000 863ec7f8
nt!DbgBreakPointWithStatus+0x20
f789a340 805455b9 000000c2 00000007 00001153
nt!KeRegisterBugCheckReasonCallback+0x688
f789a360 8056aa72 000000c2 00000007 00001153 nt!KeBugCheckEx+0x19
f789a3c0 80625e5a 863ec800 00000000 00000000 nt!ExFreePool+0x1642
f789a3dc 80627258 00000000 00000000 f789a61c
nt!IoReadPartitionTable+0x73a
f789a3f8 8062914d 00000002 f789a61c f7722080
nt!IoReadPartitionTableEx+0x68
f789a5b8 00240023 80f64d90 00240023 80f64dc8
nt!IoGetBootDiskInformation+0x14d
00002000 00000000 00000000 00000000 00000000 0x240023
STACK_COMMAND: .bugcheck ; kb
FOLLOWUP_NAME: MachineOwner


If I change the sector size to 4K, there is no problem. What the
problem?



--
luxiaojun
------------------------------------------------------------------------
Posted via http://www.codecomments.com
------------------------------------------------------------------------

 


Windows does not support disks with sector size > 4KB (CPU page size).

Its memory mapped files code and cache will be ruined if the IO boundary is
> page size.


--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
maxim@storagecraft.com
http://www.storagecraft.com

"luxiaojun" <luxiaojun.36amhs@mail.codecomments.com> wrote in message
news:luxiaojun.36amhs@mail.codecomments.com...
>
> Currently we are making a large SCSI disk driver for Windows. In the
> READ CAPACITY command, I set the sector size 8K, but the system crashed
> in the READ(10) command, it shows:
>
> Cannot get _POOL_TRACKER_BIG_PAGES type size
> MODULE_NAME: nt
> FAULTING_MODULE: 804e0000 nt
> DEBUG_FLR_IMAGE_TIMESTAMP: 3e8015c6
> POOL_ADDRESS: 863ec800
> BUGCHECK_STR: 0xc2_7
> DEFAULT_BUCKET_ID: DRIVER_FAULT
> LAST_CONTROL_TRANSFER: from 80545108 to 804e11c0
> STACK_TEXT:
> WARNING: Stack unwind information not available. Following frames may
> be wrong.
> f7899fd8 80545108 00000003 00000000 863ec7f8
> nt!DbgBreakPointWithStatus+0x20
> f789a340 805455b9 000000c2 00000007 00001153
> nt!KeRegisterBugCheckReasonCallback+0x688
> f789a360 8056aa72 000000c2 00000007 00001153 nt!KeBugCheckEx+0x19
> f789a3c0 80625e5a 863ec800 00000000 00000000 nt!ExFreePool+0x1642
> f789a3dc 80627258 00000000 00000000 f789a61c
> nt!IoReadPartitionTable+0x73a
> f789a3f8 8062914d 00000002 f789a61c f7722080
> nt!IoReadPartitionTableEx+0x68
> f789a5b8 00240023 80f64d90 00240023 80f64dc8
> nt!IoGetBootDiskInformation+0x14d
> 00002000 00000000 00000000 00000000 00000000 0x240023
> STACK_COMMAND: .bugcheck ; kb
> FOLLOWUP_NAME: MachineOwner
>
>
> If I change the sector size to 4K, there is no problem. What the
> problem?
>
>
>
> --
> luxiaojun
> ------------------------------------------------------------------------
> Posted via http://www.codecomments.com
> ------------------------------------------------------------------------
>


 
I would see this crash as a genuine bug in OS. At least, it should not try
to mount such a disk.

"Maxim S. Shatskih" <maxim@storagecraft.com> wrote in message
news:elj2j0nhIHA.4740@TK2MSFTNGP05.phx.gbl...
> Windows does not support disks with sector size > 4KB (CPU page size).
>
> Its memory mapped files code and cache will be ruined if the IO
> boundary is
>> page size.

>
> --
> Maxim Shatskih, Windows DDK MVP
> StorageCraft Corporation
> maxim@storagecraft.com
> http://www.storagecraft.com
>
> "luxiaojun" <luxiaojun.36amhs@mail.codecomments.com> wrote in message
> news:luxiaojun.36amhs@mail.codecomments.com...
>>
>> Currently we are making a large SCSI disk driver for Windows. In the
>> READ CAPACITY command, I set the sector size 8K, but the system crashed
>> in the READ(10) command, it shows:
>>
>> Cannot get _POOL_TRACKER_BIG_PAGES type size
>> MODULE_NAME: nt
>> FAULTING_MODULE: 804e0000 nt
>> DEBUG_FLR_IMAGE_TIMESTAMP: 3e8015c6
>> POOL_ADDRESS: 863ec800
>> BUGCHECK_STR: 0xc2_7
>> DEFAULT_BUCKET_ID: DRIVER_FAULT
>> LAST_CONTROL_TRANSFER: from 80545108 to 804e11c0
>> STACK_TEXT:
>> WARNING: Stack unwind information not available. Following frames may
>> be wrong.
>> f7899fd8 80545108 00000003 00000000 863ec7f8
>> nt!DbgBreakPointWithStatus+0x20
>> f789a340 805455b9 000000c2 00000007 00001153
>> nt!KeRegisterBugCheckReasonCallback+0x688
>> f789a360 8056aa72 000000c2 00000007 00001153 nt!KeBugCheckEx+0x19
>> f789a3c0 80625e5a 863ec800 00000000 00000000 nt!ExFreePool+0x1642
>> f789a3dc 80627258 00000000 00000000 f789a61c
>> nt!IoReadPartitionTable+0x73a
>> f789a3f8 8062914d 00000002 f789a61c f7722080
>> nt!IoReadPartitionTableEx+0x68
>> f789a5b8 00240023 80f64d90 00240023 80f64dc8
>> nt!IoGetBootDiskInformation+0x14d
>> 00002000 00000000 00000000 00000000 00000000 0x240023
>> STACK_COMMAND: .bugcheck ; kb
>> FOLLOWUP_NAME: MachineOwner
>>
>>
>> If I change the sector size to 4K, there is no problem. What the
>> problem?
>>
>>
>>
>> --
>> luxiaojun
>> ------------------------------------------------------------------------
>> Posted via http://www.codecomments.com
>> ------------------------------------------------------------------------
>>

>



 
On all platforms, all driver code is made read-only, as they are never mapped with large pages.
 

Back
Top