# US 2014/0157362 A1 · Recovering from unexpected flash drive removal

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

- Number: US 2014/0157362 A1
- Document ID: US20140157362A1
- Status: Published application
- Kind: A1
- Application number: 13/692,358
- Filed: 2012-12-03
- Published: 2014-06-05
- Earliest claimed: 2012-12-03
- Assignees: Imation Corp.
- Applicants: Imation Corp.
- Inventors: Laurence Hamid; Scott Ashdown
- Web page: https://patentgrep.com/patent/US20140157362A1

## CPC

- G06F 21/554: {involving event detection and direct action}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0656: {Data buffering arrangements}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 12/0815: Cache consistency protocols
- G06F 21/70: Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F 21/74: operating in dual or compartmented mode, i.e. at least one secure mode
- G06F 21/79: in semiconductor storage media, e.g. directly-addressable memories
- G06F 2212/222: Non-volatile memory
- G06F 2221/2101: Auditing as a secondary aspect
- G06F 2221/2105: Dual mode as a secondary aspect
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques for recovering from unexpected removal of (or other unexpected power loss) a flash memory device from a computer system. An interpolated device driver notes whenever the flash memory device is unexpectedly removed, or otherwise unexpectedly powers off or enters a locked state. If the flash memory device is reinserted, the interpolated device driver reinitializes the flash memory device, and satisfies any flash memory device security protocol, so the flash memory device and the computer system can be restored to their status just before unexpected removal. The interpolated device driver caches requests to the flash memory device, and when status is restored to just before removal, replays those requests to the flash memory device, so the flash memory device responds to those requests as if it had ever been removed. The computer system does not notice any break in service by the flash memory device due to removal and reinsertion.

## Claims

### Claim 1

A method, including steps of
identifying, for a flash drive coupled to a computer system, a event including lack of access to said flash memory drive by said computer system;
intercepting a security protocol between said flash drive and said computer system, said security protocol responsive to restored access to said flash memory drive by said computer system;
conducting said security protocol without notice to said computer system of said event;
restoring access to said flash memory drive by said computer system to a state just before said event.

### Claim 2 (depends on 1)

A method as in claim 1, wherein
said step of conducting a security protocol include steps of
identifying at least a first portion of a set of security information by said computer system;
retrieving at least a second portion of said security information from said flash drive; and
using a function of said first portion and said second portion in said security protocol.

### Claim 3 (depends on 1)

A method as in claim 1, wherein
said step of conducting and said step of intercepting collectively include steps of
identifying an attempt to initiate said security protocol by a first element of said computer system;
communicating at least a portion of a set of security information between said first element of said computer system and an intercept element of said computer system;
performing said steps of conducting in response to said security information; and
communicating a result of said steps of performing between said first element of said computer system and said intercept element of said computer system.

### Claim 4 (depends on 1)

A method as in claim 1, including steps of
during a time duration of said lack of access, intercepting requests from said computer system to said flash memory device;
after said steps of restoring access, presenting said requests to the flash memory device substantially as they were made by said computer system, and presenting responses by the flash memory device to said requests to said computer system;
whereby the computer system receives said responses from the flash memory device substantially as if said event had not occurred.

### Claim 5 (depends on 4)

A method as in claim 4, wherein
said steps of intercepting requests include one or more of:
caching requests from said computer system to said flash memory device; or
responding to requests from said computer system with an indicator that said flash memory device is not ready.

### Claim 6 (depends on 1)

A method as in claim 1, wherein
said computer system includes a software element disposed to perform said steps of intercepting.

### Claim 7 (depends on 1)

A method as in claim 1, wherein
said event includes one or more of:
unexpected removal, unexpected power-off, unexpected entry into a locked state.

### Claim 8 (depends on 1)

A method as in claim 1, wherein
said steps of restoring access are performed in response to one or more of:
being within a selected time duration, being before a termination trigger.

### Claim 9 (depends on 1)

A method as in claim 1, including steps of
retaining, at said computer system, only a first portion of a set of security information needed to conduct said security protocol.

### Claim 10 (depends on 9)

A method as in claim 9, including steps of
retrieving, by said computer system, a second portion of said security information from said flash memory device; and
determining said security information in response to said first portion and said second portion.

### Claim 11

An apparatus including
a computer system including a port coupleable to a flash drive;
said computer system including a processor and memory, said memory including instructions interpretable by said processor;
said instructions including a device driver directing said processor to detect an event including lack of access to said flash memory drive by said computer system;
said device driver including first instructions directing said processor to intercept a security protocol between said flash drive and said computer system, said security protocol responsive to restored access to said flash memory drive by said computer system;
said device driver including second instructions directing said processor to conduct said security protocol without notice to said computer system of said event; and
said device driver including third instructions directing said processor to restore access to said flash memory drive by said computer system to a state just before said event.

### Claim 12 (depends on 11)

Apparatus as in claim 11, wherein
said second instructions include
instructions directing said processor to identify at least a first portion of a set of security information by said computer system;
instructions directing said processor to retrieve at least a second portion of said security information from said flash drive; and
instructions directing said processor to use a function of said first portion and said second portion in said security protocol.

### Claim 13 (depends on 11)

Apparatus as in claim 11, wherein
said second and third instructions collectively include
instructions directing said processor to identify an attempt to initiate said security protocol by a first element of said computer system;
instructions directing said processor to communicate at least a portion of a set of security information between said first element of said computer system and an intercept element of said computer system;
instructions directing said processor to perform said steps of conducting in response to said security information; and
instructions directing said processor to communicate a result of said steps of performing between said first element of said computer system and said intercept element of said computer system.

### Claim 14 (depends on 11)

Apparatus as in claim 11, wherein
said device driver includes instructions directing said processor, during a time duration of said lack of access, to intercept requests from said computer system to said flash memory device;
said device driver includes instructions directing said processor, after restoring access, to present said requests to the flash memory device substantially as they were made by said computer system, and to present responses by the flash memory device to said requests to said computer system;
whereby the computer system receives said responses from the flash memory device substantially as if said event had not occurred.

### Claim 15 (depends on 14)

Apparatus as in claim 14, wherein
said instructions directing said processor, during a time duration of said lack of access, to intercept requests, include one or more of:
instructions directing said processor to cache requests from said computer system to said flash memory device; or
instructions directing said processor to respond to requests from said computer system with an indicator that said flash memory device is not ready.

### Claim 16 (depends on 14)

Apparatus as in claim 14, wherein
said third instructions directing said processor to restore access are responsive to one or more of:
being within a selected time duration, being before a termination trigger.

### Claim 17 (depends on 11)

Apparatus as in claim 11, including
instructions directing said processor to retain, at said computer system, only a first portion of a set of security information needed to conduct said security protocol.

### Claim 18 (depends on 17)

Apparatus as in claim 17, including
instructions directing said processor to retrieve a second portion of said security information from said flash memory device; and
instructions directing said processor to determine said security information in response to said first portion and said second portion.
