# US 11,307,800 B2 · Supporting file exclusions and commits in disk-based write filters

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,307,800 B2
- Document ID: US11307800B2
- Status: Granted
- Kind: B2
- Application number: 16/678,555
- Filed: 2019-11-08
- Published: 2021-05-13
- Granted: 2022-04-19
- Earliest claimed: 2019-11-08
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Gokul Thiruchengode Vajravel; Jyothi Bandakka
- Web page: https://patentgrep.com/patent/US11307800B2

## CPC

- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0622: {in relation to access}
- G06F 3/0643: {Management of files}
- G06F 3/0644: {Management of space entities, e.g. partitions, extents, pools}
- G06F 3/0647: {Migration mechanisms}
- G06F 3/0673: {Single storage device}
- G06F 3/0674: {Disk device}
- G06F 13/102: {where the program performs an interfacing function, e.g. device driver (G06F13/105 takes precedence; contention policies within device drivers G06F9/4881; scheduling within device drivers G06F9/52)}
- G06F 16/1734: {Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs}
- G06F 16/1865: {Transactional file systems}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A disk-based write filter can include a filter driver that is loaded below the file system driver to thereby provide write filter functionality at the disk level, and a supporting driver that is loaded above the file system driver. When an excluded file is opened, the supporting driver can obtain the file's disk sector information and provide it to the filter driver to cause the filter driver to pass through I/O requests that target sectors defined in the file's disk sector information. When the excluded file is closed, the supporting driver can again obtain the file's disk sector information and provide it to the filter driver to allow the filter driver to identify any additional sectors that may have been allocated to the file. The filter driver can copy any such sectors from an overlay to disk and commence passing through I/O requests that target these sectors.

## Claims

### Claim 1

A method, implemented by a disk-based write filter that provides write filter protection to a volume, for supporting file exclusions, the method comprising:
receiving, at a supporting driver of the disk-based write filter, an I/O request for opening a file;
determining, by the supporting driver, that the file should be excluded from the write filter protection;
in response to the determination, retrieving, by the supporting driver, disk sector information for the file;
sending, by the supporting driver, the disk sector information to a filter driver of the disk-based write filter; and
employing, by the filter driver, the disk sector information to exclude the file from the write filter protection.

### Claim 2 (depends on 1)

The method of claim 1, wherein:
the supporting driver is a file system filter driver; or
the supporting driver is a registry filter driver such that the file is a registry entry.

### Claim 3 (depends on 1)

The method of claim 1, wherein the disk sector information comprises one or more cluster numbers that represent sectors of a disk that have been allocated to store the file.

### Claim 4 (depends on 1)

The method of claim 1, wherein sending the disk sector information to the filter driver comprises sending a separate I/O request to the filter driver.

### Claim 5 (depends on 1)

The method of claim 1, wherein employing the disk sector information to exclude the file from the write filter protection comprises directing I/O requests that target any sector defined in the disk sector information to disk rather than redirecting the I/O requests to an overlay.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
as part of handling the I/O request for opening the file, setting, by the supporting driver, a context of the file to indicate that the file is excluded.

### Claim 7 (depends on 6)

The method of claim 6, further comprising:
receiving, at the supporting driver, an I/O request for closing the file;
retrieving, by the supporting driver, the context of the file;
in response to determining that the context of the file indicates that the file is excluded, retrieving, by the supporting driver, current disk sector information for the file; and
sending, by the supporting driver, the current disk sector information to the filter driver.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
determining, by the filter driver, that the current disk sector information identifies one or more sectors that were not identified in the disk sector information; and
causing, by the filter driver, content pertaining to the one or more sectors to be copied from an overlay to the one or more sectors.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
employing, by the filter driver, the current disk sector information to exclude the file from the write filter protection.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
receiving, by the filter driver, a trim command;
determining, by the filter driver, that the trim command pertains to content stored in an overlay; and
causing, by the filter driver, the content to which the trim command pertains to be discarded from the overlay.

### Claim 11 (depends on 1)

The method of claim 1, further comprising:
receiving, at the supporting driver, a request to commit a second file that is not excluded from the write filter protection;
setting, by the supporting driver, a context of the second file to indicate that the second file is excluded;
receiving, at the supporting driver, an I/O request for closing the second file;
retrieving, by the supporting driver, the context of the second file;
in response to determining that the context of the second file indicates that the second file is excluded, retrieving, by the supporting driver, disk sector information for the second file;
sending, by the supporting driver, the disk sector information for the second file to the filter driver;
determining, by the filter driver, that the disk sector information for the second file identifies content stored in an overlay; and
causing, by the filter driver, the content to be copied from the overlay to disk.

### Claim 12 (depends on 11)

The method of claim 11, further comprising:
employing, by the filter driver, the disk sector information of the second file to exclude the second file from the write filter protection.

### Claim 13

One or more computer storage media storing computer executable instructions which when executed on a client device implement a disk-based write filter that provides write filter protection to a volume while also supporting file exclusions by performing the following method:
receiving, at a supporting driver of the disk-based write filter that is loaded above a file system driver for the volume, an I/O request for opening a file;
determining, by the supporting driver, that the file should be excluded from the write filter protection;
in response to the determination, retrieving, by the supporting driver, disk sector information for the file;
sending, by the supporting driver, the disk sector information to a filter driver of the disk-based write filter that is loaded below the file system driver; and
employing, by the filter driver, the disk sector information to exclude the file from the write filter protection.

### Claim 14 (depends on 13)

The computer storage media of claim 13, wherein the method further comprises:
as part of handling the I/O request for opening the file, setting, by the supporting driver, a context of the file to indicate that the file is excluded;
receiving, at the supporting driver, an I/O request for closing the file;
retrieving, by the supporting driver, the context of the file;
in response to determining that the context of the file indicates that the file is excluded, retrieving, by the supporting driver, current disk sector information for the file; and
sending, by the supporting driver, the current disk sector information to the filter driver.

### Claim 15 (depends on 14)

The computer storage media of claim 14, wherein the method further comprises:
determining, by the filter driver, that the current disk sector information identifies one or more sectors that were not identified in the disk sector information;
causing, by the filter driver, content pertaining to the one or more sectors to be copied from an overlay to the one or more sectors; and
employing, by the filter driver, the current disk sector information to exclude the file from the write filter protection.

### Claim 16 (depends on 13)

The computer storage media of claim 13, wherein the method further comprises:
receiving, at the supporting driver, a request to commit a second file that is not excluded from the write filter protection;
setting, by the supporting driver, a context of the second file to indicate that the second file is excluded;
receiving, at the supporting driver, an I/O request for closing the second file;
retrieving, by the supporting driver, the context of the second file;
in response to determining that the context of the second file indicates that the second file is excluded, retrieving, by the supporting driver, disk sector information for the second file;
sending, by the supporting driver, the disk sector information for the second file to the filter driver;
determining, by the filter driver, that the disk sector information for the second file identifies content stored in an overlay; and
causing, by the filter driver, the content to be copied from the overlay to disk.

### Claim 17

A method, implemented by a disk-based write filter that provides write filter protection to a volume, for supporting file exclusions, the method comprising:
receiving, at a supporting driver of the disk-based write filter, an IRP_MJ_CREATE request for a file;
as part of handling the IRP_MJ_CREATE request for the file:
determining, by the supporting driver, that the file should be excluded from the write filter protection;
in response to the determination, retrieving, by the supporting driver, disk sector information for the file;
sending, by the supporting driver, the disk sector information to a filter driver of the disk-based write filter to cause the filter driver to employ the disk sector information to exclude the file from the write filter protection; and
setting, by the supporting driver, a context of the file to indicate that the file is excluded.

### Claim 18 (depends on 17)

The method of claim 17, further comprising:
receiving, at the supporting driver, an IRP_MJ_CLEANUP request for the file;
as part of handling the IRP_MJ_CLEANUP request for the file:
retrieving, by the supporting driver, the context of the file;
determining, by the supporting driver, that the context of the file indicates that the file is excluded;
in response to the determination, retrieving, by the supporting driver, current disk sector information for the file; and
sending, by the supporting driver, the current disk sector information to the filter driver to cause the filter driver to employ the current disk sector information to exclude the file from the write filter protection.

### Claim 19 (depends on 18)

The method of claim 18, wherein the filter driver employs the current disk sector information to exclude the file from the write filter protection by:
determining that the current disk sector information identifies one or more sectors that were not identified in the disk sector information; and
causing content pertaining to the one or more sectors to be copied from an overlay to the one or more sectors.

### Claim 20 (depends on 19)

The method of claim 19, wherein determining that the current disk sector information identifies one or more sectors that were not identified in the disk sector information comprises comparing the current disk sector information to a pass-through sector list.
