FSCTL_ENUM_EXTERNAL_BACKING 제어 코드
FSCTL_ENUM_EXTERNAL_BACKING 제어 코드는 백업 원본이 있는 볼륨에서 파일의 열거를 시작하거나 계속합니다. 요청이 성공적으로 완료될 때마다 백업된 파일의 식별자가 반환됩니다. 지원되는 모든 파일은 지원되는 외부 공급자에 관계없이 열거됩니다. 볼륨의 모든 백업된 파일을 열거하려면 연속적인 FSCTL_ENUM_EXTERNAL_BACKING 요청이 필요합니다.
이 작업을 수행하려면 다음 매개 변수 를 사용하여 FltFsControlFile 또는 ZwFsControlFile 을 호출합니다.
매개 변수
인스턴스 [in]: FltFsControlFile만 해당 합니다. 호출자에 대한 불투명 instance 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
FileObject [in]: FltFsControlFile만 해당 합니다. 분리할 볼륨을 지정하는 파일 포인터 개체입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
FileHandle [in]: ZwFsControlFile만 해당 합니다. 분리할 볼륨의 파일 핸들입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
FsControlCode [in]: 작업에 대한 코드를 제어합니다. 이 작업에 는 FSCTL_ENUM_EXTERNAL_BACKING 사용합니다.
InputBuffer [in]: None. NULL로 설정합니다.
InputBufferLength [in]: 를 0으로 설정합니다.
OutputBuffer [out]: 하나 이상의 WOF_EXTERNAL_FILE_ID 구조를 받을 수 있을 만큼 크기가 커야 하는 출력 버퍼에 대한 포인터입니다.
OutputBufferLength [out]: OutputBuffer가 가리키는 출력 버퍼의 크기입니다. OutputBufferLength 는 >= sizeof(WOF_EXTERNAL_FILE_ID)여야 합니다.
LengthReturned [out]: 성공적인 완료 시 OutputBuffer 에 기록된 바이트 수를 지정합니다.
상태 블록
FltFsControlFile 또는 ZwFsControlFile 은 작업이 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 적절한 함수가 다음 NTSTATUS 값 중 하나를 반환할 수 있습니다.
코드 | 의미 |
---|---|
STATUS_ACCESS_DENIED | 요청자에게 관리 권한이 없습니다. |
STATUS_BUFFER_TOO_SMALL | OutputBuffer에서 가리키고 OutputBufferLength로 지정된 출력 버퍼의 길이가 너무 작습니다. |
STATUS_NO_MORE_FILES | 볼륨의 파일에 백업 원본이 더 이상 없습니다. |
STATUS_INTERNAL_ERROR | 요청된 볼륨에 액세스할 수 없습니다. |
STATUS_INVALID_DEVICE_REQUEST | 지원 서비스가 없거나 시작되지 않았습니다. |
설명
OutputBuffer에서 반환된 WOF_EXTERNAL_FILE_ID 구조체에는 백업된 파일에 대한 고유한 파일 식별자가 포함되어 있습니다. 구조체는 다음과 같이 ntifs.h로 정의됩니다.
typedef struct _WOF_EXTERNAL_FILE_ID {
FILE_ID_128 FileId;
} WOF_EXTERNAL_FILE_ID, *PWOF_EXTERNAL_FILE_ID;
백업 원본이 있는 볼륨의 각 파일에 대한 식별자를 검색하기 위해 FSCTL_ENUM_EXTERNAL_BACKING 요청이 연속적으로 발급됩니다. 모든 파일이 열거되면 STATUS_NO_MORE_FILES 상태 코드가 반환됩니다.
요구 사항
요구 사항 유형 | 요구 사항 |
---|---|
지원되는 최소 클라이언트 | Windows 8.1 Update |
헤더 | Ntifs.h ( Ntifs.h 또는 Fltkernel.h 포함) |