KR100695188B1 - 타겟 파일 액세스 방법 및 이 방법을 수행하는 컴퓨터판독 가능 기록 매체 - Google Patents

타겟 파일 액세스 방법 및 이 방법을 수행하는 컴퓨터판독 가능 기록 매체 Download PDF

Info

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
Application number
KR1020040097278A
Other languages
English (en)
Other versions
KR20050059989A (ko
Inventor
리드벤자민씨
스미스마크에이
Original Assignee
레노보 (싱가포르) 피티이. 엘티디.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 레노보 (싱가포르) 피티이. 엘티디. filed Critical 레노보 (싱가포르) 피티이. 엘티디.
Publication of KR20050059989A publication Critical patent/KR20050059989A/ko
Application granted granted Critical
Publication of KR100695188B1 publication Critical patent/KR100695188B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1466Management of the backup or restore process to make the backup process non-disruptive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • G06F16/1774Locking 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

타겟 파일 액세스 방법 및 이 방법을 수행하는 컴퓨터 판독 가능 기록 매체{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}
도 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)

  1. 파일 개방 시간(file-open time)에 파일 잠금(file locking)이 실행되고 있는 운영 체제를 갖는 컴퓨터 시스템 내에서 적어도 하나의 타겟 파일을 액세스하는 방법으로서,
    상기 컴퓨터 시스템 내에서 개방되어 있는 모든 파일의 세트에 대응하는 핸들(handles)의 세트를 획득하는 단계와,
    상기 운영 체제의 커널(kernel) 내에서 상기 핸들의 세트에 대응하는 파일 식별자의 세트를 결정하는 단계와,
    상기 파일 식별자의 세트로부터 상기 타겟 파일에 대응하는 파일 식별자를 식별하는 단계와,
    상기 커널 내에서 상기 식별된 파일 식별자에 대응하는 판독 요청 패킷(read request packet)을 상기 운영 체제의 상기 파일 시스템 드라이버로 전송하는 단계와,
    상기 파일 시스템 드라이버로부터 상기 타겟 파일에 대응하는 데이터를 수신하는 단계
    를 포함하는 타겟 파일 액세스 방법.
  2. 제 1 항에 있어서,
    상기 획득 단계는,
    상기 핸들의 세트 내의 각 핸들에 관한 모든 정보를 문의하는 NtQuerySystemInformation을 상기 커널에 대해 발행(issuing)하는 단계와,
    상기 커널로부터 상기 핸들의 세트 내의 각 핸들에 대한 SYSTEM_HANDLE_INFORMATION의 어레이를 획득하는 단계-상기 SYSTEM_HANDLE_INFORMATION은 파일 식별자 정보를 포함하는 FILE_OBJECT에 대한 포인터를 포함함-
    를 포함하는 타겟 파일 액세스 방법.
  3. 제 2 항에 있어서,
    상기 결정 단계는,
    상기 핸들의 세트 내의 각 핸들에 대하여, 상기 각각의 핸들에 대응하는 상기 FILE_OBJECT에 대한 포인터를 상기 커널에 전달하는 단계를 포함하는 타겟 파일 액세스 방법.
  4. 제 3 항에 있어서,
    상기 결정 단계는,
    상기 핸들의 세트 내의 각 핸들에 대하여, 상기 전달된 FILE_OBJECT에 대응 하는 파일 식별자를 상기 커널로부터 인출하는 단계를 더 포함하는 타겟 파일 액세스 방법.
  5. 제 4 항에 있어서,
    상기 식별 단계는,
    상기 타겟 파일에 대응하는 상기 식별된 파일 식별자에 해당하는 상기 FILE_OBJECT를 식별하는 단계를 포함하는 타겟 파일 액세스 방법.
  6. 제 5 항에 있어서,
    상기 전송 단계는,
    상기 식별된 FILE_OBJECT를 상기 커널에 전달하는 단계와,
    상기 판독 요청 패킷을 이용하여 상기 식별된 FILE_OBJECT에 대응하는 상기 타겟 파일의 데이터를 판독하도록 상기 커널에서 요청하는 단계-상기 판독 요청 패킷은 인터럽트 요청 패킷(Interrupt Request Packet : IRP)을 포함함-
    를 포함하는 타겟 파일 액세스 방법.
  7. 제 6 항에 있어서,
    상기 요청 단계는,
    상기 커널 내에서 상기 식별된 FILE_OBJECT에 대응하는 IRP를 소정의 오프셋과 소정의 길이로 생성하는 단계와,
    상기 운영 체제의 상기 파일 시스템 드라이버로 상기 IRP를 전달하는 단계
    를 포함하는 타겟 파일 액세스 방법.
  8. 제 7 항에 있어서,
    상기 수신 단계는,
    상기 커널 내에서 상기 식별된 FILE_OBJECT에 대응하는 상기 타겟 파일의 상기 데이터를 상기 파일 시스템 드라이버로부터 수신하는 단계와,
    상기 커널로부터 상기 식별된 FILE_OBJECT에 대응하는 상기 타겟 파일의 데이터를 획득하는 단계
    를 포함하는 타겟 파일 액세스 방법.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 기재된 타겟 파일 액세스 방법의 각각의 단계를 수행하도록 구성된 각각의 모듈을 포함하는 시스템.
  10. 운영 체제를 갖는 컴퓨터 시스템 내에서 파일 개방 시간에 파일 잠금 상태로 구현되어 있는 적어도 하나의 타겟 파일을 액세스하는 방법으로서,
    상기 컴퓨터 시스템 내에서 개방되어 있는 모든 파일의 세트에 대응하는 핸들의 세트를 획득하는 단계와,
    상기 운영 체제의 커널 내에서 상기 핸들의 세트에 대응하는 파일 식별자의 세트를 결정하는 단계와,
    상기 파일 식별자의 세트로부터 상기 타겟 파일에 대응하는 파일 식별자를 식별하는 단계와,
    상기 커널 내에서 상기 식별된 파일 식별자에 대응하는 판독 요청 패킷을 상기 운영 체제의 상기 파일 시스템 드라이버로 전송하는 단계
    를 포함하는 타겟 파일 액세스 방법.
  11. 제 10 항에 있어서,
    상기 획득 단계는,
    상기 핸들의 세트 내의 각 핸들에 관한 모든 정보를 문의하는 NtQuerySystemInformation을 상기 커널에 대해 발행하는 단계와,
    상기 커널로부터 상기 핸들의 세트 내의 각 핸들에 대한 SYSTEM_HANDLE_INFORMATION의 어레이를 획득하는 단계-상기 SYSTEM_HANDLE_INFORMATION은 파일 식별자 정보를 포함하는 FILE_OBJECT에 대한 포인터를 포함함-
    를 포함하는 타겟 파일 액세스 방법.
  12. 제 11 항에 있어서,
    상기 결정 단계는,
    상기 핸들의 세트 내의 각 핸들에 대하여, 상기 각각의 핸들에 대응하는 상기 FILE_OBJECT에 대한 포인터를 상기 커널에 전달하는 단계를 포함하는 타겟 파일 액세스 방법.
  13. 제 12 항에 있어서,
    상기 결정 단계는,
    상기 핸들의 세트 내의 각 핸들에 대하여, 상기 전달된 FILE_OBJECT에 대응하는 파일 식별자를 상기 커널로부터 인출하는 단계를 더 포함하는 타겟 파일 액세스 방법.
  14. 제 13 항에 있어서,
    상기 식별 단계는,
    상기 타겟 파일에 대응하는 상기 식별된 파일 식별자에 해당하는 상기 FILE_OBJECT를 식별하는 단계를 포함하는 타겟 파일 액세스 방법.
  15. 제 14 항에 있어서,
    상기 전송 단계는,
    상기 식별된 FILE_OBJECT를 상기 커널에 전달하는 단계와,
    상기 판독 요청 패킷을 이용하여 상기 식별된 FILE_OBJECT에 대응하는 상기 타겟 파일의 데이터를 판독하도록 상기 커널에서 요청하는 단계-상기 판독 요청 패킷은 인터럽트 요청 패킷(IRP)을 포함함-
    를 포함하는 타겟 파일 액세스 방법.
  16. 제 15 항에 있어서,
    상기 요청 단계는,
    상기 커널 내에서 상기 식별된 FILE_OBJECT에 대응하는 IRP를 소정의 오프셋과 소정의 길이로 생성하는 단계와,
    상기 운영 체제의 상기 파일 시스템 드라이버로 상기 IRP를 전달하는 단계
    를 포함하는 타겟 파일 액세스 방법.
  17. 제 10 항 내지 제 16 항 중 어느 한 항에 기재된 타겟 파일 액세스 방법의 각각의 단계를 수행하도록 구성된 각각의 모듈을 포함하는 시스템.
  18. 파일 개방 시간에 파일 잠금이 실행되고 있는 운영 체제를 갖는 컴퓨터 시스템 내에서 적어도 하나의 타겟 파일을 액세스하도록 구현되는 컴퓨터 판독 가능 프로그램 코드를 가지고, 프로그래밍 가능한 컴퓨터에서 이용 가능한 컴퓨터 판독 가능 기록 매체로서,
    상기 컴퓨터 시스템 내에서 개방되어 있는 모든 파일의 세트에 대응하는 핸들의 세트를 획득하는 컴퓨터 판독 가능 프로그램 코드와,
    상기 운영 체제의 커널 내에서 상기 핸들의 세트에 대응하는 파일 식별자의 세트를 결정하는 컴퓨터 판독 가능 프로그램 코드와,
    상기 파일 식별자의 세트로부터 상기 타겟 파일에 대응하는 파일 식별자를 식별하는 컴퓨터 판독 가능 프로그램 코드와,
    상기 커널 내에서 상기 식별된 파일 식별자에 대응하는 판독 요청 패킷을 상기 운영 체제의 상기 파일 시스템 드라이버로 전송하는 컴퓨터 판독 가능 프로그램 코드와,
    상기 파일 시스템 드라이버로부터 상기 타겟 파일에 대응하는 데이터를 수신하는 컴퓨터 판독 가능 프로그램 코드
    를 포함하는 컴퓨터 판독 가능 기록 매체.
  19. 파일 개방 시간에 파일 잠금이 실행되고 있는 운영 체제를 갖는 컴퓨터 시스템 내에서 적어도 하나의 타겟 파일을 액세스하도록 구현되는 컴퓨터 판독 가능 프로그램 코드를 가지고, 프로그래밍 가능한 컴퓨터에서 이용 가능한 컴퓨터 판독 가능 기록 매체로서,
    상기 컴퓨터 시스템 내에서 개방되어 있는 모든 파일의 세트에 대응하는 핸들의 세트를 획득하는 컴퓨터 판독 가능 프로그램 코드와,
    상기 운영 체제의 커널 내에서 상기 핸들의 세트에 대응하는 파일 식별자의 세트를 결정하는 컴퓨터 판독 가능 프로그램 코드와,
    상기 파일 식별자의 세트로부터 상기 타겟 파일에 대응하는 파일 식별자를 식별하는 컴퓨터 판독 가능 프로그램 코드와,
    상기 커널 내에서 상기 식별된 파일 식별자에 대응하는 판독 요청 패킷을 상기 운영 체제의 상기 파일 시스템 드라이버로 전송하는 컴퓨터 판독 가능 프로그램 코드
    를 포함하는 컴퓨터 판독 가능 기록 매체.
KR1020040097278A 2003-12-15 2004-11-25 타겟 파일 액세스 방법 및 이 방법을 수행하는 컴퓨터판독 가능 기록 매체 KR100695188B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 ネットワークストレージ仮想化方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
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