KR100695188B1 - 타겟 파일 액세스 방법 및 이 방법을 수행하는 컴퓨터판독 가능 기록 매체 - Google Patents
타겟 파일 액세스 방법 및 이 방법을 수행하는 컴퓨터판독 가능 기록 매체 Download PDFInfo
- Publication number
- KR100695188B1 KR100695188B1 KR1020040097278A KR20040097278A KR100695188B1 KR 100695188 B1 KR100695188 B1 KR 100695188B1 KR 1020040097278 A KR1020040097278 A KR 1020040097278A KR 20040097278 A KR20040097278 A KR 20040097278A KR 100695188 B1 KR100695188 B1 KR 100695188B1
- Authority
- KR
- South Korea
- Prior art keywords
- file
- kernel
- handles
- target
- target file
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1466—Management of the backup or restore process to make the backup process non-disruptive
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
- G06F16/1774—Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은 파일 개방 시간(file-open time)에 파일 잠금(file locking)이 실행되고 있는 운영 체제(operating systems)를 갖는 컴퓨터 시스템 내에서 적어도 하나의 타겟 파일을 액세스하는 방법 및 시스템에 관한 것이다. 예시적인 일실시예에서, 이러한 방법 및 시스템은 (1) 컴퓨터 시스템 내에서 개방되어 있는 모든 파일의 세트에 대응하는 핸들(handles)의 세트를 획득하는 단계와, (2) 운영 체제의 커널(kernel) 내에서 핸들의 세트에 대응하는 파일 식별자의 세트를 결정하는 단계와, (3) 파일 식별자의 세트로부터 타겟 파일에 대응하는 파일 식별자를 식별하는 단계와, (4) 커널 내에서 식별된 파일 식별자에 대응하는 판독 요청 패킷(read request packet)을 운영 체제의 파일 시스템 드라이버로 전송하는 단계와, (5) 파일 시스템 드라이버로부터 타겟 파일에 대응하는 데이터를 수신하는 단계를 포함한다.
Description
도 1a는 종래 기술의 기법을 나타내는 흐름도이다.
도 1b는 종래 기술의 기법을 나타내는 흐름도이다.
도 2는 본 발명의 예시적인 일실시예에 따른 흐름도이다.
도 3은 본 발명의 예시적인 일실시예에 따른 획득 단계를 나타내는 흐름도이다.
도 4a는 본 발명의 예시적인 일실시예에 따른 결정 단계를 나타내는 흐름도이다.
도 4b는 본 발명의 다른 실시예에 따른 결정 단계를 나타내는 흐름도이다.
도 5는 본 발명의 예시적인 일실시예에 따른 식별 단계를 나타내는 흐름도이다.
도 6a는 본 발명의 예시적인 일실시예에 따른 전송 단계를 나타내는 흐름도이다.
도 6b는 본 발명의 다른 실시예에 따른 전송 단계를 나타내는 흐름도이다.
도 7은 본 발명의 예시적인 일실시예에 따른 수신 단계를 나타내는 흐름도이다.
관련 출원
본 특허 출원은 동시 계류 중이고, 본 특허권자에게 공동 소유되며 공동 양도되어, 2003년 2월 15일에 출원된 미국 특허 출원 제 000000 호(현재 미확정 상태임)(대리인 서류 제출 번호 제 ARC9-2003-0089 호)와 관련된 것이다.
발명이 속하는 기술 분야
본 발명은 운영 체제(operating systems)에 관한 것이고, 보다 구체적으로는 파일 개방 시간(file-open time)에 파일 잠금(file locking)이 실행되고 있는 운영 체제를 갖는 컴퓨터 시스템 내에서 적어도 하나의 타겟 파일을 액세스하는 방법 및 시스템에 관한 것이다.
종래기술
마이크로소프트 윈도우즈(이하에서는 "윈도우즈"로 지칭함) 커널(kernel) 및 윈도우즈 프로그램은 다른 프로세스에 의한 파일의 개방과 판독을 방지하는 능력을 갖고 있다. 이는 소정 파일을 개방하기는 하지만, 다른 프로세스에 대해서는 특정한 작업(판독 등)을 허가하지 않는 것에 의해 이루어질 수 있다. 이 프로세스가 파일을 개방 상태로 유지하는 한, 다른 프로세스는 이 프로세스에 의해 허가를 받아야 한다. 다른 프로세스에 의해서 파일을 개방하고자 하는 시도는 윈도우즈 "공유 위반(sharing violations)"이 되고, 해당 파일 내의 데이터를 판독할 수 없게 된다.
(개방 파일의 액세스 필요성)
그러나, 이러한 파일 내의 데이터는 특히 백업(backup) 애플리케이션 등과 같은 여러 애플리케이션에 있어서 매우 중요할 수 있다. 예를 들면, 백업 애플리케이션이 머신 내의 모든 파일을 판독 및 백업할 수 있게 하는 것은 매우 중요하다. 추가하여, 이러한 보호되는 파일의 일부는 윈도우즈 레지스트리 정보(Windows registry information)를 포함하는 파일이므로, 복원된(restored) 백업 이미지의 정확한 작동이 필요하게 된다.
(종래 기술의 시스템)
일반적으로, 백업 애플리케이션은 이러한 문제점을 해결하기 위해 아래의 2개의 접근 방안 중 하나의 접근 방안을 이용한다.
- 섹터 방식 복사(sector-wise copy)
종래 기술에 의한 첫 번째 접근 방안은, 종래 기술에 따라서 도 1a에 도시된 바와 같이, 애플리케이션이 (1) 드라이브 상에서 데이터의 섹터 방식 복사를 수행하는 단계(112)와, (2) 디스크의 전체 이미지를 생성하는 단계(114)를 수행하게 하는 것이다. 불행하게도, 이 방법은 드라이브의 단일체 복사본(monolithic copy)을 생성한다. 추가하여, 이 기법은 개별 파일의 섹터를 배치하기 어려운 디스크 이미지를 생성한다. 이는 이 이미지로부터의 "단일 파일 복원(single file restore)"을 매우 어렵게 한다.
- 셧다운(Shutdown) 및 프리부팅(Preboot)
종래 기술에 의한 두 번째 접근 방안은, 종래 기술에 따라서 도 1b에 도시된 바와 같이, 애플리케이션이 (1) 머신을 셧다운하는 단계(122)와, (2) 머신을 "프리부팅" 환경이 되게 하는 단계(124)와, (3) 파일 복사를 수행하는 단계(126)를 수행하게 하는 것이다. 이 머신은 다시 재부팅(rebooted)되거나, 윈도우즈로의 부팅을 완료한다. 이 방법은 재부팅에 있어서 이러한 파일을 복사하도록 요구하기 때문에 부적당하다. 추가하여, 머신이 작동되는 동안에 백업을 수행하는 것은 불가능하다.
그러므로, 파일 개방 시간에 파일 잠금이 실행되고 있는 운영 체제를 갖는 컴퓨터 시스템 내에서 적어도 하나의 타겟 파일을 액세스하는 방법 및 시스템이 필요하다.
본 발명은 파일 개방 시간에 파일 잠금이 실행되고 있는 운영 체제를 갖는 컴퓨터 시스템 내에서 적어도 하나의 타겟 파일을 액세스하는 방법 및 시스템에 관한 것이다. 예시적인 일실시예에서, 이러한 방법 및 시스템은 (1) 컴퓨터 시스템 내에서 개방되어 있는 모든 파일의 세트에 대응하는 핸들(handles)의 세트를 획득하는 단계와, (2) 운영 체제의 커널 내에서 핸들의 세트에 대응하는 파일 식별자의 세트를 결정하는 단계와, (3) 파일 식별자의 세트로부터 타겟 파일에 대응하는 파일 식별자를 식별하는 단계와, (4) 커널 내에서 식별된 파일 식별자에 대응하는 판독 요청 패킷(read request packet)을 운영 체제의 파일 시스템 드라이버로 전송하는 단계와, (5) 파일 시스템 드라이버로부터 타겟 파일에 대응하는 데이터를 수신하는 단계를 포함한다.
예시적인 일실시예에서, 획득 단계는 (a) 핸들의 세트 내의 각 핸들에 관한 모든 정보를 문의하는 NtQuerySystemInformation을 커널에 대해 발행(issuing)하는 단계와, (b) 커널로부터 핸들의 세트 내의 각 핸들에 대한 SYSTEM_HANDLE_INFORMATION의 어레이를 획득하는 단계-이러한 SYSTEM_HANDLE_INFORMATION은 파일 식별자 정보를 포함하는 FILE_OBJECT에 대한 포인터를 포함함-를 포함한다.
예시적인 일실시예에서, 결정 단계는 핸들의 세트 내의 각 핸들에 대하여, 각각의 핸들에 대응하는 FILE_OBJECT에 대한 포인터를 커널에 전달하는 단계를 포 함한다. 다른 실시예에서, 결정 단계는 핸들의 세트 내의 각 핸들에 대하여, 전달되는 FILE_OBJECT에 대응하는 파일 식별자를 커널로부터 출력하는 단계를 포함한다.
예시적인 일실시예에서, 식별 단계는 타겟 파일에 대응하는 식별된 파일 식별자에 해당하는 FILE_OBJECT를 식별하는 단계를 포함한다.
예시적인 일실시예에서, 전송 단계는 (a) 식별된 FILE_OBJECT를 커널에 전달하는 단계와, (b) 판독 요청 패킷을 이용하여 식별된 FILE_OBJECT에 대응하는 타겟 파일의 데이터를 판독하도록 커널에서 요청하는 단계-판독 요청 패킷은 인터럽트 요청 패킷(Interrupt Request Packet : IRP)을 포함함-를 포함한다. 다른 실시예에서, 요청 단계는 (i) 커널 내에서 식별된 FILE_OBJECT에 대응하는 IRP를 소정의 오프셋과 소정의 길이로 생성하는 단계와, (ii) 운영 체제의 파일 시스템 드라이버로 IRP를 전달하는 단계를 포함한다.
예시적인 일실시예에서, 수신 단계는 (a) 커널 내에서 식별된 FILE_OBJECT에 대응하는 타겟 파일의 데이터를 파일 시스템 드라이버로부터 수신하는 단계와, (b) 커널로부터 식별된 FILE_OBJECT에 대응하는 타겟 파일의 데이터를 획득하는 단계를 포함한다.
예시적인 일실시예에서, 이러한 방법 및 시스템은 (1) 컴퓨터 시스템 내에서 개방되어 있는 모든 파일의 세트에 대응하는 핸들의 세트를 획득하는 단계와, (2) 운영 체제의 커널 내에서 핸들의 세트에 대응하는 파일 식별자의 세트를 결정하는 단계와, (3) 파일 식별자의 세트로부터 타겟 파일에 대응하는 파일 식별자를 식별 하는 단계와, (4) 커널 내에서 식별된 파일 식별자에 대응하는 판독 요청 패킷을 운영 체제의 파일 시스템 드라이버로 전송하는 단계를 포함한다.
또한, 본 발명은 파일 개방 시간에 파일 잠금이 실행되고 있는 운영 체제를 갖는 컴퓨터 시스템 내에서 적어도 하나의 타겟 파일을 액세스하도록 구현되는 컴퓨터 판독 가능 프로그램 코드를 가지고, 프로그래밍 가능한 컴퓨터에서 이용 가능한 컴퓨터 프로그램 제품을 제공한다. 예시적인 일실시예에서, 컴퓨터 프로그램 제품은 (1) 컴퓨터 시스템 내에서 개방되어 있는 모든 파일의 세트에 대응하는 핸들의 세트를 획득하는 컴퓨터 판독 가능 프로그램 코드와, (2) 운영 체제의 커널 내에서 핸들의 세트에 대응하는 파일 식별자의 세트를 결정하는 컴퓨터 판독 가능 프로그램 코드와, (3) 파일 식별자의 세트로부터 타겟 파일에 대응하는 파일 식별자를 식별하는 컴퓨터 판독 가능 프로그램 코드와, (4) 커널 내에서 식별된 파일 식별자에 대응하는 판독 요청 패킷을 운영 체제의 파일 시스템 드라이버로 전송하는 컴퓨터 판독 가능 프로그램 코드와, (5) 파일 시스템 드라이버로부터 타겟 파일에 대응하는 데이터를 수신하는 컴퓨터 판독 가능 프로그램 코드를 포함한다.
예시적인 일실시예에서, 컴퓨터 프로그램 제품은 (1) 컴퓨터 시스템 내에서 개방되어 있는 모든 파일의 세트에 대응하는 핸들의 세트를 획득하는 컴퓨터 판독 가능 프로그램 코드와, (2) 운영 체제의 커널 내에서 핸들의 세트에 대응하는 파일 식별자의 세트를 결정하는 컴퓨터 판독 가능 프로그램 코드와, (3) 파일 식별자의 세트로부터 타겟 파일에 대응하는 파일 식별자를 식별하는 컴퓨터 판독 가능 프로그램 코드와, (4) 커널 내에서 식별된 파일 식별자에 대응하는 판독 요청 패킷을 운영 체제의 파일 시스템 드라이버로 전송하는 컴퓨터 판독 가능 프로그램 코드를 포함한다.
본 발명은 파일 개방 시간에 파일 잠금이 실행되고 있는 운영 체제를 갖는 컴퓨터 시스템 내에서 적어도 하나의 타겟 파일을 액세스하는 방법 및 시스템을 제공한다. 예시적인 일실시예에서, 본 발명은 윈도우즈가 계속 실행되는 동안에 보호되는 윈도우즈 파일의 컨텐츠를 판독하는 방법 및 시스템을 제공한다. 본 발명은 파일 개방 시간에 파일 잠금이 실행되고 있는 운영 체제를 갖는 컴퓨터 시스템 내에서 적어도 하나의 타겟 파일을 액세스하는 방법 및 시스템을 제공한다. 예시적인 일실시예에서, 이러한 방법 및 시스템은 (1) 컴퓨터 시스템 내에서 개방되어 있는 모든 파일의 세트에 대응하는 핸들의 세트를 획득하는 단계와, (2) 운영 체제의 커널 내에서 핸들의 세트에 대응하는 파일 식별자의 세트를 결정하는 단계와, (3) 파일 식별자의 세트로부터 타겟 파일에 대응하는 파일 식별자를 식별하는 단계와, (4) 커널 내에서 식별된 파일 식별자에 대응하는 판독 요청 패킷을 운영 체제의 파일 시스템 드라이버로 전송하는 단계와, (5) 파일 시스템 드라이버로부터 타겟 파일에 대응하는 데이터를 수신하는 단계를 포함한다.
도 2를 참조하면, 예시적인 실시예에 있어서, 본 발명은 컴퓨터 시스템 내에서 개방되어 있는 모든 파일의 세트에 대응하는 핸들의 세트를 획득하는 단계(210)와, 운영 체제의 커널 내에서 핸들의 세트에 대응하는 파일 식별자의 세트를 결정 하는 단계(212)와, 파일 식별자의 세트로부터 타겟 파일에 대응하는 파일 식별자를 식별하는 단계(214)와, 커널 내에서 식별된 파일 식별자에 대응하는 판독 요청 패킷을 운영 체제의 파일 시스템 드라이버로 전송하는 단계(216)와, 파일 시스템 드라이버로부터 타겟 파일에 대응하는 데이터를 수신하는 단계(218)를 포함한다.
(일반 사항)
본 발명은 연계하여 작동되는 2개의 프로그램을 이용하여 서로간에 데이터를 상호 전송함으로써 보호되는 윈도우즈 파일을 판독한다. 고급 레벨에서, 이러한 프로그램들 중 하나의 프로그램(예를 들면 wam.sys 등)은 커널 내에서 실행되어, 실제 판독을 수행하는 한편, 다른 프로그램(예를 들면 bam.exe 등)은 사용자 공간 내에서 실행되어, 해당 파일에 관한 정보를 도출하고, 어느 위치를 판독할지 인식할 수 있을 정도로 충분한 정보를 제공하기 위해서 커널 프로그램에 해당 정보를 전달한다. 다음에 커널 프로그램은 판독된 데이터를 사용자 레벨 프로그램으로 다시 되돌려보낸다.
(핸들의 세트의 획득)
특히, 사용자 레벨 프로그램은 커널에 대하여 개방 파일 핸들(open file handles)에 관한 모든 정보를 문의하는 NtQuerySystemInformation을 발행한다. 커널은 커널 내의 각각의 개방 핸들을 위한 SYSTEM_HANDLE_INFORMATION의 어레이로 복귀한다.
도 3을 참조하면, 예시적인 일실시예에서, 획득 단계(210)는 핸들의 세트 내의 각 핸들에 관한 모든 정보를 문의하는 NtQuerySystemInformation을 커널에 대해 발행(issuing)하는 단계(310)와, 커널로부터 핸들의 세트 내의 각 핸들에 대한 SYSTEM_HANDLE_INFORMATION의 어레이를 획득하는 단계(312)-이러한 SYSTEM_HANDLE_INFORMATION은 파일 식별자 정보를 포함하는 FILE_OBJECT에 대한 포인터를 포함함-를 포함한다.
(핸들의 세트에 대응하는 파일 식별자의 세트의 결정)
그러나, 파일 핸들과 파일 명칭 사이의 연관 관계가 또한 필요하다. 어느 핸들이 타겟 파일을 위한 핸들인지 확인하는 것이 또한 필요하다. 이러한 SYSTEM_HANDLE_INFORMATION 내의 정보들 중 한 부분이 FILE_OBJECT에 대한 포인터이다. FILE_OBJECTS는 파일 명칭 정보를 포함한다. 그러나, FILE_OBJECT를 저장하는 메모리는 오로지 커널 내에서만 이용 가능하다.
그러므로, 사용자 레벨 프로그램은 이 메모리에 대한 포인터를 커널 레벨 프로그램으로 전달한다. 다음에, 커널 레벨 프로그램은 이 FILE_OBJECT가 기술하는 파일 명칭을 되돌려 보낸다.
도 4a를 참조하면, 예시적인 일실시예에서, 결정 단계(212)는 핸들의 세트 내의 각 핸들에 대하여, 각각의 핸들에 대응하는 FILE_OBJECT에 대한 포인터를 커널에 전달하는 단계(412)를 포함한다. 다른 실시예에서, 도 4b에 도시된 바와 같이, 결정 단계(212)는 핸들의 세트 내의 각 핸들에 대하여, 전달되는 FILE_OBJECT 에 대응하는 파일 식별자를 커널로부터 인출하는 단계(422)를 더 포함한다.
(타겟 파일에 대응하는 파일 식별자의 식별)
사용자 레벨 프로그램은 찾고있는 파일 명칭이 커널로부터 되돌아 올 때까지 이러한 방법을 계속 수행한다. 그 다음, 사용자 레벨 프로그램은 판독을 원하는 타겟 파일, 즉 보호되는 파일에 대한 핸들을 갖게 된다. 기본적으로, 파일 개방이 수행되게 된다.
도 5를 참조하면, 예시적인 일실시예에서, 식별 단계(214)는 타겟 파일에 대응하는 식별된 파일 식별자에 해당하는 FILE_OBJECT를 식별하는 단계(512)를 포함한다.
(판독 요청 패킷의 전송)
사용자 공간 내에서 핸들을 직접적으로 이용하여 판독할 수 있어야 한다. 그러나, 이 핸들은 여전히 원래의 보호 프로세스가 부여한 허가에 의한 제약을 받고, 이러한 핸들에 대한 판독 시도는 공유 위반(sharing violation)을 생성할 것이다.
그러므로, 커널 레벨 프로그램은 이 FILE_OBJECT를 커널 프로그램으로 되돌려보내고, 이러한 FILE_OBJECT에 의해서 소정의 오프셋 및 PAGE_SIZE(일반적으로 4096바이트) 길이로 기술된 파일로부터 데이터를 판독할 것인지를 문의한다. 또한, 단순하게 커널에서 ZwReadFile을 발행하는 것만으로는, 상술된 이유로 공유 위 반이 되어 실패하게 된다.
이러한 파일로부터의 데이터는 커널 내에서 인터럽트 요청 패킷(Interrupt Request Packet : IRP)을 생성하고, 이 IRP를 이러한 FILE_OBJECT가 상주하는 기반 파일 시스템(NTFS, FAT32 등)을 향해 하향 전달한다.
도 6a를 참조하면, 예시적인 일실시예에서, 전송 단계(216)는 식별된 FILE_OBJECT를 커널에 전달하는 단계(612)와, 판독 요청 패킷을 이용하여 식별된 FILE_OBJECT에 대응하는 타겟 파일의 데이터를 판독하도록 커널로부터 요청하는 단계(614)-이러한 판독 요청 패킷은 인터럽트 요청 패킷(IRP)을 포함함-를 포함한다. 다른 실시예에서, 도 6b에 도시된 바와 같이, 요청 단계(614)는 커널 내에서 식별된 FILE_OBJECT에 대응하는 IRP를 소정의 오프셋과 소정의 길이로 생성하는 단계(622)와, 운영 체제의 파일 시스템 드라이버로 IRP를 전달하는 단계(624)를 포함한다.
(타겟 파일에 대응하는 데이터의 수신)
파일 시스템은 요청된 데이터에 응답하고, 커널 프로그램은 해당 데이터를 사용자 공간으로 되돌려 보낸다. 보호되는 파일에 대한 판독이 수행된다. 파일의 끝부분(end)에 도달될 때까지 서로 다른 오프셋으로 이러한 판독을 반복하면 디스크 상에서 이 파일에 대한 데이터의 완전한 복사본을 획득할 수 있을 것이다.
도 7을 참조하면, 예시적인 일실시예에서, 수신 단계(218)는 커널 내에서 식별된 FILE_OBJECT에 대응하는 타겟 파일의 데이터를 파일 시스템 드라이버로부터 수신하는 단계(712)와, 커널로부터 식별된 FILE_OBJECT에 대응하는 타겟 파일의 데이터를 획득하는 단계(714)를 포함한다.
(결론)
당업자라면 충분히 설명된 본 발명의 바람직한 실시예 및 그에 대한 여러 변경을 가지고, 본 명세서의 개시 내용을 숙지함으로써 본 발명으로부터 벗어나지 않는 여러 변경 및 등가물들이 존재한다는 것을 인식할 것이다. 따라서, 본 발명은 상술된 개시 내용으로 한정되도록 의도된 것이 아니라, 오로지 첨부된 청구항에 의해서만 한정되도록 의도된 것이다.
본 발명에 따르면, 운영 체제를 갖는 컴퓨터 시스템 내에서 파일 개방 시간에 파일 잠금 상태로 구현되는 적어도 하나의 타겟 파일을 액세스하는 방법 및 시스템이 제공되어 있다.
Claims (19)
- 파일 개방 시간(file-open time)에 파일 잠금(file locking)이 실행되고 있는 운영 체제를 갖는 컴퓨터 시스템 내에서 적어도 하나의 타겟 파일을 액세스하는 방법으로서,상기 컴퓨터 시스템 내에서 개방되어 있는 모든 파일의 세트에 대응하는 핸들(handles)의 세트를 획득하는 단계와,상기 운영 체제의 커널(kernel) 내에서 상기 핸들의 세트에 대응하는 파일 식별자의 세트를 결정하는 단계와,상기 파일 식별자의 세트로부터 상기 타겟 파일에 대응하는 파일 식별자를 식별하는 단계와,상기 커널 내에서 상기 식별된 파일 식별자에 대응하는 판독 요청 패킷(read request packet)을 상기 운영 체제의 상기 파일 시스템 드라이버로 전송하는 단계와,상기 파일 시스템 드라이버로부터 상기 타겟 파일에 대응하는 데이터를 수신하는 단계를 포함하는 타겟 파일 액세스 방법.
- 제 1 항에 있어서,상기 획득 단계는,상기 핸들의 세트 내의 각 핸들에 관한 모든 정보를 문의하는 NtQuerySystemInformation을 상기 커널에 대해 발행(issuing)하는 단계와,상기 커널로부터 상기 핸들의 세트 내의 각 핸들에 대한 SYSTEM_HANDLE_INFORMATION의 어레이를 획득하는 단계-상기 SYSTEM_HANDLE_INFORMATION은 파일 식별자 정보를 포함하는 FILE_OBJECT에 대한 포인터를 포함함-를 포함하는 타겟 파일 액세스 방법.
- 제 2 항에 있어서,상기 결정 단계는,상기 핸들의 세트 내의 각 핸들에 대하여, 상기 각각의 핸들에 대응하는 상기 FILE_OBJECT에 대한 포인터를 상기 커널에 전달하는 단계를 포함하는 타겟 파일 액세스 방법.
- 제 3 항에 있어서,상기 결정 단계는,상기 핸들의 세트 내의 각 핸들에 대하여, 상기 전달된 FILE_OBJECT에 대응 하는 파일 식별자를 상기 커널로부터 인출하는 단계를 더 포함하는 타겟 파일 액세스 방법.
- 제 4 항에 있어서,상기 식별 단계는,상기 타겟 파일에 대응하는 상기 식별된 파일 식별자에 해당하는 상기 FILE_OBJECT를 식별하는 단계를 포함하는 타겟 파일 액세스 방법.
- 제 5 항에 있어서,상기 전송 단계는,상기 식별된 FILE_OBJECT를 상기 커널에 전달하는 단계와,상기 판독 요청 패킷을 이용하여 상기 식별된 FILE_OBJECT에 대응하는 상기 타겟 파일의 데이터를 판독하도록 상기 커널에서 요청하는 단계-상기 판독 요청 패킷은 인터럽트 요청 패킷(Interrupt Request Packet : IRP)을 포함함-를 포함하는 타겟 파일 액세스 방법.
- 제 6 항에 있어서,상기 요청 단계는,상기 커널 내에서 상기 식별된 FILE_OBJECT에 대응하는 IRP를 소정의 오프셋과 소정의 길이로 생성하는 단계와,상기 운영 체제의 상기 파일 시스템 드라이버로 상기 IRP를 전달하는 단계를 포함하는 타겟 파일 액세스 방법.
- 제 7 항에 있어서,상기 수신 단계는,상기 커널 내에서 상기 식별된 FILE_OBJECT에 대응하는 상기 타겟 파일의 상기 데이터를 상기 파일 시스템 드라이버로부터 수신하는 단계와,상기 커널로부터 상기 식별된 FILE_OBJECT에 대응하는 상기 타겟 파일의 데이터를 획득하는 단계를 포함하는 타겟 파일 액세스 방법.
- 제 1 항 내지 제 8 항 중 어느 한 항에 기재된 타겟 파일 액세스 방법의 각각의 단계를 수행하도록 구성된 각각의 모듈을 포함하는 시스템.
- 운영 체제를 갖는 컴퓨터 시스템 내에서 파일 개방 시간에 파일 잠금 상태로 구현되어 있는 적어도 하나의 타겟 파일을 액세스하는 방법으로서,상기 컴퓨터 시스템 내에서 개방되어 있는 모든 파일의 세트에 대응하는 핸들의 세트를 획득하는 단계와,상기 운영 체제의 커널 내에서 상기 핸들의 세트에 대응하는 파일 식별자의 세트를 결정하는 단계와,상기 파일 식별자의 세트로부터 상기 타겟 파일에 대응하는 파일 식별자를 식별하는 단계와,상기 커널 내에서 상기 식별된 파일 식별자에 대응하는 판독 요청 패킷을 상기 운영 체제의 상기 파일 시스템 드라이버로 전송하는 단계를 포함하는 타겟 파일 액세스 방법.
- 제 10 항에 있어서,상기 획득 단계는,상기 핸들의 세트 내의 각 핸들에 관한 모든 정보를 문의하는 NtQuerySystemInformation을 상기 커널에 대해 발행하는 단계와,상기 커널로부터 상기 핸들의 세트 내의 각 핸들에 대한 SYSTEM_HANDLE_INFORMATION의 어레이를 획득하는 단계-상기 SYSTEM_HANDLE_INFORMATION은 파일 식별자 정보를 포함하는 FILE_OBJECT에 대한 포인터를 포함함-를 포함하는 타겟 파일 액세스 방법.
- 제 11 항에 있어서,상기 결정 단계는,상기 핸들의 세트 내의 각 핸들에 대하여, 상기 각각의 핸들에 대응하는 상기 FILE_OBJECT에 대한 포인터를 상기 커널에 전달하는 단계를 포함하는 타겟 파일 액세스 방법.
- 제 12 항에 있어서,상기 결정 단계는,상기 핸들의 세트 내의 각 핸들에 대하여, 상기 전달된 FILE_OBJECT에 대응하는 파일 식별자를 상기 커널로부터 인출하는 단계를 더 포함하는 타겟 파일 액세스 방법.
- 제 13 항에 있어서,상기 식별 단계는,상기 타겟 파일에 대응하는 상기 식별된 파일 식별자에 해당하는 상기 FILE_OBJECT를 식별하는 단계를 포함하는 타겟 파일 액세스 방법.
- 제 14 항에 있어서,상기 전송 단계는,상기 식별된 FILE_OBJECT를 상기 커널에 전달하는 단계와,상기 판독 요청 패킷을 이용하여 상기 식별된 FILE_OBJECT에 대응하는 상기 타겟 파일의 데이터를 판독하도록 상기 커널에서 요청하는 단계-상기 판독 요청 패킷은 인터럽트 요청 패킷(IRP)을 포함함-를 포함하는 타겟 파일 액세스 방법.
- 제 15 항에 있어서,상기 요청 단계는,상기 커널 내에서 상기 식별된 FILE_OBJECT에 대응하는 IRP를 소정의 오프셋과 소정의 길이로 생성하는 단계와,상기 운영 체제의 상기 파일 시스템 드라이버로 상기 IRP를 전달하는 단계를 포함하는 타겟 파일 액세스 방법.
- 제 10 항 내지 제 16 항 중 어느 한 항에 기재된 타겟 파일 액세스 방법의 각각의 단계를 수행하도록 구성된 각각의 모듈을 포함하는 시스템.
- 파일 개방 시간에 파일 잠금이 실행되고 있는 운영 체제를 갖는 컴퓨터 시스템 내에서 적어도 하나의 타겟 파일을 액세스하도록 구현되는 컴퓨터 판독 가능 프로그램 코드를 가지고, 프로그래밍 가능한 컴퓨터에서 이용 가능한 컴퓨터 판독 가능 기록 매체로서,상기 컴퓨터 시스템 내에서 개방되어 있는 모든 파일의 세트에 대응하는 핸들의 세트를 획득하는 컴퓨터 판독 가능 프로그램 코드와,상기 운영 체제의 커널 내에서 상기 핸들의 세트에 대응하는 파일 식별자의 세트를 결정하는 컴퓨터 판독 가능 프로그램 코드와,상기 파일 식별자의 세트로부터 상기 타겟 파일에 대응하는 파일 식별자를 식별하는 컴퓨터 판독 가능 프로그램 코드와,상기 커널 내에서 상기 식별된 파일 식별자에 대응하는 판독 요청 패킷을 상기 운영 체제의 상기 파일 시스템 드라이버로 전송하는 컴퓨터 판독 가능 프로그램 코드와,상기 파일 시스템 드라이버로부터 상기 타겟 파일에 대응하는 데이터를 수신하는 컴퓨터 판독 가능 프로그램 코드를 포함하는 컴퓨터 판독 가능 기록 매체.
- 파일 개방 시간에 파일 잠금이 실행되고 있는 운영 체제를 갖는 컴퓨터 시스템 내에서 적어도 하나의 타겟 파일을 액세스하도록 구현되는 컴퓨터 판독 가능 프로그램 코드를 가지고, 프로그래밍 가능한 컴퓨터에서 이용 가능한 컴퓨터 판독 가능 기록 매체로서,상기 컴퓨터 시스템 내에서 개방되어 있는 모든 파일의 세트에 대응하는 핸들의 세트를 획득하는 컴퓨터 판독 가능 프로그램 코드와,상기 운영 체제의 커널 내에서 상기 핸들의 세트에 대응하는 파일 식별자의 세트를 결정하는 컴퓨터 판독 가능 프로그램 코드와,상기 파일 식별자의 세트로부터 상기 타겟 파일에 대응하는 파일 식별자를 식별하는 컴퓨터 판독 가능 프로그램 코드와,상기 커널 내에서 상기 식별된 파일 식별자에 대응하는 판독 요청 패킷을 상기 운영 체제의 상기 파일 시스템 드라이버로 전송하는 컴퓨터 판독 가능 프로그램 코드를 포함하는 컴퓨터 판독 가능 기록 매체.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/737,581 US20050131960A1 (en) | 2003-12-15 | 2003-12-15 | Method and system of accessing at least one target file in a computer system with an operating system with file locking implemented at file-open time |
US10/737,581 | 2003-12-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050059989A KR20050059989A (ko) | 2005-06-21 |
KR100695188B1 true KR100695188B1 (ko) | 2007-03-19 |
Family
ID=34523151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040097278A KR100695188B1 (ko) | 2003-12-15 | 2004-11-25 | 타겟 파일 액세스 방법 및 이 방법을 수행하는 컴퓨터판독 가능 기록 매체 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20050131960A1 (ko) |
EP (1) | EP1544735A3 (ko) |
JP (1) | JP4149434B2 (ko) |
KR (1) | KR100695188B1 (ko) |
CN (1) | CN1667608B (ko) |
WO (1) | WO2005059673A2 (ko) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2555483A1 (en) * | 2006-08-04 | 2008-02-04 | Platespin Ltd | A method for providing live file transfer between machines |
US20080033902A1 (en) * | 2006-08-04 | 2008-02-07 | Platespin Ltd | A Method for Providing Live File Transfer Between Machines |
US20080072032A1 (en) * | 2006-09-19 | 2008-03-20 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Configuring software agent security remotely |
US7752255B2 (en) * | 2006-09-19 | 2010-07-06 | The Invention Science Fund I, Inc | Configuring software agent security remotely |
US8407757B2 (en) * | 2008-01-04 | 2013-03-26 | International Business Machines Corporation | Specifying and enforcing run-time policies for application processes being executed on a computer |
WO2011117921A1 (en) * | 2010-03-25 | 2011-09-29 | Hitachi, Ltd. | Method for concurrency control in a file versioning system |
CN102346769B (zh) * | 2011-09-20 | 2014-10-22 | 奇智软件(北京)有限公司 | 一种注册表文件整理方法及装置 |
CN104166721B (zh) * | 2011-09-20 | 2018-03-27 | 北京奇虎科技有限公司 | 一种注册表文件整理方法及装置 |
CN104516974B (zh) * | 2014-12-26 | 2018-03-13 | 华为技术有限公司 | 一种文件系统目录项的管理方法及装置 |
US11151273B2 (en) * | 2018-10-08 | 2021-10-19 | Microsoft Technology Licensing, Llc | Controlling installation of unauthorized drivers on a computer system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05342070A (ja) * | 1992-06-09 | 1993-12-24 | Mitsubishi Electric Corp | ファイル情報管理方法 |
JPH0659959A (ja) * | 1992-08-04 | 1994-03-04 | Mutoh Ind Ltd | ファイル保護方式 |
US5566319A (en) * | 1992-05-06 | 1996-10-15 | International Business Machines Corporation | System and method for controlling access to data shared by a plurality of processors using lock files |
KR970049721A (ko) * | 1995-12-29 | 1997-07-29 | 구자홍 | 공유 파일 시스템 |
JPH11120057A (ja) * | 1997-10-17 | 1999-04-30 | Hitachi Ltd | ファイルバックアップ方法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4918653A (en) * | 1988-01-28 | 1990-04-17 | International Business Machines Corporation | Trusted path mechanism for an operating system |
US5371885A (en) * | 1989-08-29 | 1994-12-06 | Microsoft Corporation | High performance file system |
AU649455B2 (en) * | 1990-07-11 | 1994-05-26 | American Telephone And Telegraph Company | Distributed computing system |
US5689706A (en) * | 1993-06-18 | 1997-11-18 | Lucent Technologies Inc. | Distributed systems with replicated files |
US5675725A (en) * | 1993-07-19 | 1997-10-07 | Cheyenne Advanced Technology Limited | Computer backup system operable with open files |
US6026402A (en) * | 1998-01-07 | 2000-02-15 | Hewlett-Packard Company | Process restriction within file system hierarchies |
WO1999042934A2 (en) * | 1998-02-20 | 1999-08-26 | Storm Systems, Llc | File system performance enhancement |
US6161111A (en) * | 1998-03-31 | 2000-12-12 | Emc Corporation | System and method for performing file-handling operations in a digital data processing system using an operating system-independent file map |
CA2244626A1 (en) * | 1998-07-31 | 2000-01-31 | Kom Inc. | A hardware and software system |
US6356863B1 (en) * | 1998-09-08 | 2002-03-12 | Metaphorics Llc | Virtual network file server |
US6401093B1 (en) * | 1999-03-31 | 2002-06-04 | International Business Machines Corporation | Cross file system caching and synchronization |
US7281168B1 (en) * | 2000-03-03 | 2007-10-09 | Intel Corporation | Failover architecture for local devices that access remote storage |
US6651123B1 (en) * | 2000-03-30 | 2003-11-18 | International Business Machines Corporation | File system locking |
US6510499B1 (en) * | 2000-06-22 | 2003-01-21 | International Business Machines Corporation | Method, apparatus, and article of manufacture for providing access to data stored in compressed files |
US6931450B2 (en) * | 2000-12-18 | 2005-08-16 | Sun Microsystems, Inc. | Direct access from client to storage device |
US7730213B2 (en) * | 2000-12-18 | 2010-06-01 | Oracle America, Inc. | Object-based storage device with improved reliability and fast crash recovery |
US6847983B2 (en) * | 2001-02-28 | 2005-01-25 | Kiran Somalwar | Application independent write monitoring method for fast backup and synchronization of open files |
US6985915B2 (en) * | 2001-02-28 | 2006-01-10 | Kiran Somalwar | Application independent write monitoring method for fast backup and synchronization of files |
US7219157B2 (en) * | 2001-03-23 | 2007-05-15 | Lucent Technologies Inc. | Application programming interface for network applications |
US7185013B2 (en) * | 2001-04-12 | 2007-02-27 | International Business Machines Corporation | Method for constructing and caching a chain of file identifiers and enabling inheritance of resource properties in file systems |
US6643654B1 (en) * | 2001-06-25 | 2003-11-04 | Network Appliance, Inc. | System and method for representing named data streams within an on-disk structure of a file system |
US7239411B2 (en) * | 2001-09-18 | 2007-07-03 | International Business Machines Corporation | Method and apparatus for controlling printing of electronic applications |
US7219096B2 (en) * | 2002-06-06 | 2007-05-15 | International Business Machines Corporation | Method for migrating open files on a busy file system |
JP2004054721A (ja) * | 2002-07-23 | 2004-02-19 | Hitachi Ltd | ネットワークストレージ仮想化方法 |
-
2003
- 2003-12-15 US US10/737,581 patent/US20050131960A1/en not_active Abandoned
-
2004
- 2004-11-15 CN CN2004100925776A patent/CN1667608B/zh not_active Expired - Fee Related
- 2004-11-25 KR KR1020040097278A patent/KR100695188B1/ko not_active IP Right Cessation
- 2004-12-07 WO PCT/EP2004/053310 patent/WO2005059673A2/en active Application Filing
- 2004-12-10 EP EP04257684A patent/EP1544735A3/en not_active Ceased
- 2004-12-14 JP JP2004361862A patent/JP4149434B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5566319A (en) * | 1992-05-06 | 1996-10-15 | International Business Machines Corporation | System and method for controlling access to data shared by a plurality of processors using lock files |
JPH05342070A (ja) * | 1992-06-09 | 1993-12-24 | Mitsubishi Electric Corp | ファイル情報管理方法 |
JPH0659959A (ja) * | 1992-08-04 | 1994-03-04 | Mutoh Ind Ltd | ファイル保護方式 |
KR970049721A (ko) * | 1995-12-29 | 1997-07-29 | 구자홍 | 공유 파일 시스템 |
JPH11120057A (ja) * | 1997-10-17 | 1999-04-30 | Hitachi Ltd | ファイルバックアップ方法 |
Also Published As
Publication number | Publication date |
---|---|
JP4149434B2 (ja) | 2008-09-10 |
WO2005059673A2 (en) | 2005-06-30 |
EP1544735A2 (en) | 2005-06-22 |
CN1667608B (zh) | 2010-04-28 |
CN1667608A (zh) | 2005-09-14 |
EP1544735A3 (en) | 2009-07-22 |
JP2005182800A (ja) | 2005-07-07 |
KR20050059989A (ko) | 2005-06-21 |
US20050131960A1 (en) | 2005-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8074069B2 (en) | Reading a locked windows NFTS EFS encrypted computer file | |
US8191155B2 (en) | Microprocessor | |
US8346805B2 (en) | Filter driver for identifying disk files by analysis of content | |
US7757112B2 (en) | System and method for booting alternate MBR in event of virus attack | |
US7831821B2 (en) | System backup and recovery solution based on BIOS | |
US10713361B2 (en) | Anti-malware protection using volume filters | |
US20080228770A1 (en) | Method for Performing Recoverable Live Context Migration in a Stacked File System | |
US20080244738A1 (en) | Access control | |
US20060005260A1 (en) | Microprocessor | |
US7783854B2 (en) | System and method for expandable non-volatile storage devices | |
US7523279B2 (en) | Information processing apparatus for accessing memory spaces including a user memory space and a secure memory space | |
KR100695188B1 (ko) | 타겟 파일 액세스 방법 및 이 방법을 수행하는 컴퓨터판독 가능 기록 매체 | |
US20040003265A1 (en) | Secure method for BIOS flash data update | |
US20040167996A1 (en) | Computer system having a virtualized I/O device | |
JP2005276158A (ja) | ストレージシステム、計算機システムまたは記憶領域の属性設定方法 | |
US8107337B2 (en) | Image processing apparatus and data erasing method | |
US7464234B1 (en) | Position independent incremental backup | |
US7380246B2 (en) | Method and system of accessing at least one target file in a computer system with an operating system with file locking implemented with byte-range locking | |
US6578044B1 (en) | Method and system for typesafe attribute matching | |
WO1999044158A1 (en) | Method and system for typesafe attribute matching | |
CN113302598A (zh) | 电子数据管理装置、电子数据管理系统、其所用的程序及记录介质 | |
JPH0934799A (ja) | データプロテクト方法 | |
JPH10340232A (ja) | ファイル複写防止装置及びファイル読込装置 | |
US11960617B2 (en) | Hardware protection of files in an integrated-circuit device | |
JP2000259476A (ja) | ファイル管理システム及びサーバ計算機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |