Storage Device Block Driver API Test Cases (Windows CE 5.0)
The following table shows the test cases for the Storage Device Block Driver API Test.
Warning During the test, all information on the storage device is destroyed. The test writes to and reads from sectors on the storage device without preserving the contents of the sectors. Microsoft recommends that you back up data on all cards and disks that are attached to the tested device before running the test.
Test case | Description |
---|---|
4002: Format mass storage disk | Tests the functionality of the IOCTL_DISK_FORMAT_MEDIA IOCTL. If the disk supports only previous IOCTLs, use the /oldioctls command-line parameter to test the DISK_IOCTL_FORMAT_MEDIA IOCTL instead.
This test case fails if the block driver does not support the IOCTL. If the storage device does not require or support low-level formatting, the driver should immediately report success. |
4003: Write, Read, Verify 1 sector at a time | Verifies that data written one sector at a time to any sector of the disk can be read back correctly.
This test case fails if data is corrupted while reading or writing. It also fails if the boundary of a read or write buffer is overwritten. |
4004: Write, Read, Verify 8 sectors at a time | Verifies that data written eight sectors at a time to any sector of the disk can be read back correctly.
This test case fails if data is corrupted while reading or writing. It also fails if the boundary of a read or write buffer is overwritten. |
4005: Write, Read, Verify 32 sectors at a time | Verifies that data written 32 sectors at a time to any sector of the disk can be read back correctly.
This test case fails if data is corrupted while reading or writing. It also fails if the boundary of a read or write buffer is overwritten or if the storage device does not support large reads or writes. |
4006: Write, Read, Verify varying sized buffers | Verifies that reading and writing multiple sectors can be performed in a range of sizes.
This test case fails if data is corrupted while reading or writing. It also fails if the boundary of a read or write buffer is overwritten. |
4007: Write, read multi-SG 2 sectors at a time | Verifies that reading scatter-gather (SG) buffers two sectors at a time behaves correctly.
This test case fails if the driver for the storage device does not support reading multiple SG buffers. It also fails if data is corrupted while reading or writing or if the boundary of a read or write buffer is overwritten. |
4008: Write, read multi-SG 8 sectors at a time | Verifies that reading SG buffers eight sectors at a time behaves correctly.
This test fails if the driver for the storage device does not support reading multiple SG buffers. It also fails if data is corrupted while reading or writing or if the boundary of a read or write buffer is overwritten. |
4009: Write using 2-8 SG buffers, read + verify | Verifies that writing to multiple SG buffers behaves correctly. First, this test case writes data to between 2 and 8 SG buffers of random size. Then, it reads back the same range of sectors by using a single SG buffer and compares the data read to the data written.
This test case fails if the driver for the storage device does not support multiple SG buffer writes. It also fails if the driver requires individual SG buffers to be sector aligned or if data is corrupted while reading or writing. |
4010: Write, read using 2-8 SG buffers + verify | Verifies that reading multiple SG buffers behaves correctly. First, this test case writes data by using a single SG buffer. Then, it reads data by using between 2 and 8 SG buffers of random size and compares the data written to the data read.
This test case fails if the driver for the storage device does not support reading multiple SG buffers. It also fails if the driver requires individual SG buffers to be sector aligned or if data is corrupted while reading or writing. |
4011: Read + write with 2 SG buffers, varying size | Verifies that SG buffers of any size work correctly.
This test case fails if the driver for the storage device does not support multiple SG buffer reads or writes. It also fails if the driver requires individual SG buffers to be sector aligned. |
4012: Read buffer extends past last sector | Verifies the behavior of reading from a disk when the request extends past the last sector on the disk.
This test case fails if reading succeeds. A failure of the test case does not necessarily indicate a problem with the driver. |
4013: Read starts past final sector | Verifies the behavior of reading from a disk when the request starts past the last sector on the disk.
This test case fails if reading succeeds. A failure of the test case does not necessarily indicate a problem with the driver. |
4014: Write buffer extends past last sector | Verifies the behavior of writing to a disk when the request extends past the last sector on the disk.
This test case fails if writing succeeds. A failure of the test case does not necessarily indicate a problem with the driver. |
4015: Write starts past final sector | Verifies the behavior of writing to a disk when the request starts past the last sector on the disk.
This test case fails if writing succeeds. A failure of the test case does not necessarily indicate a problem with the driver. |
4016: Delete sector test cases | Verifies the functionality of the IOCTL_DISK_DELETE_SECTORS IOCTL when it is given parameters that are not valid.
It is not required that a driver support this IOCTL. If the driver does not support this IOCTL, the test case is skipped. This test case fails if the IOCTL_DISK_DELETE_SECTORS IOCTL does not handle bounds cases correctly. |
4017: Write using various buffer types | Verifies the ability of the driver to write from the following types of buffers:
This test case fails if the driver cannot read from one of the buffer types or if the driver does not appropriately handle unaligned buffers when aligned buffers are required, for example with direct memory access (DMA) transfer. |
4018: Read using various buffer types | Verifies the ability of the driver to read into the following types of buffers:
This test case fails if the driver cannot read into one of the buffer types or if the driver does not appropriately handle unaligned buffers when aligned buffers are required, for example with DMA transfer. |
See Also
Storage Device Block Driver API Test | Modifying the Storage Device Block Driver API Test
Send Feedback on this topic to the authors