FSCTL_ALLOW_EXTENDED_DASD_IO IOCTL(winioctl.h)

파티션 읽기 또는 쓰기 호출에서 I/O 경계 검사를 수행하지 않도록 파일 시스템 드라이버에 신호를 보냅니다. 대신 디바이스 드라이버에서 경계 검사를 수행합니다.

이 작업을 수행하려면 다음 매개 변수를 사용하여 DeviceIoControl 함수를 호출합니다.

C++
BOOL DeviceIoControl(
  (HANDLE) hDevice,              // handle to device
  FSCTL_ALLOW_EXTENDED_DASD_IO,  // dwIoControlCodeNULL,                          // lpInBuffer0,                             // nInBufferSizeNULL,                          // lpOutBuffer0,                             // nOutBufferSize(LPDWORD) lpBytesReturned,     // number of bytes returned
  (LPOVERLAPPED) lpOverlapped    // OVERLAPPED structure
);

설명

FSCTL_ALLOW_EXTENDED_DASD_IO 제어 코드를 사용하는 호출은 하드 디스크 드라이브 및 파일 시스템의 기본 구조에 익숙한 프로그래머만 주의해서 사용해야 합니다. 파티션에 대한 후속 쓰기 작업을 부적절하게 사용하거나 부정확하게 확인하면 파티션의 데이터가 손상되거나 전체 파티션이 파기됩니다.

FSCTL_ALLOW_EXTENDED_DASD_IO 제어 코드는 파일 시스템 드라이버가 지정된 핸들을 사용하여 수행된 읽기 또는 쓰기 호출에 대해 I/O 경계 검사를 수행하지 않도록 알리는 데 사용됩니다. FSCTL_ALLOW_EXTENDED_DASD_IO 파티션의 첫 번째 섹터(부팅 매개 변수 블록)와 파티션의 첫 번째 유용한 섹터 사이에 존재할 수 있는 파티션의 일부인 숨겨진 섹터에 액세스할 수 있습니다. FSCTL_ALLOW_EXTENDED_DASD_IO 마지막으로 유용한 클러스터와 파티션의 끝 사이에 존재할 수 있는 손실된 클러스터에 대한 액세스도 허용합니다.

이 작업 후 발급된 I/O 요청은 디바이스 드라이버에 직접 전달됩니다. 이러한 후속 호출이 파티션 경계를 벗어나는 데이터를 요청하면 드라이버가 실패합니다.

이 작업에 겹치는 I/O의 의미는 DeviceIoControl의 설명 섹션을 참조하세요.

파티션에 대한 핸들을 검색하려면 lpFileName 매개 변수가 다음 형식의 문자열로 설정된 CreateFile을 호출합니다.

\.\X:

여기서 X 는 드라이브 문자입니다.

CreateFile을 호출하는 애플리케이션은 CreateFile의 dwShareMode 매개 변수에 FILE_SHARE_READFILE_SHARE_WRITE 플래그도 지정해야 합니다. 자세한 내용은 CreateFile의 디스크 디바이스 섹션을 참조하세요.

드라이브의 파티션 구조를 확인하고 시스템에서 파티션을 인식하는지 확인하려면 IOCTL_DISK_GET_DRIVE_LAYOUT_EX 또는 IOCTL_DISK_GET_DRIVE_LAYOUT 제어 코드를 적절하게 사용합니다. 단일 파티션에 대한 유사한 정보는 IOCTL_DISK_GET_PARTITION_INFO_EX 또는 IOCTL_DISK_GET_PARTITION_INFO 제어 코드를 적절하게 사용합니다. 클러스터 크기를 확인하려면 GetDiskFreeSpaceEx 또는 GetDiskFreeSpace 함수를 적절하게 사용합니다.

Windows Server 2012 이 함수는 다음 기술에서 지원됩니다.

기술 지원됨
SMB(서버 메시지 블록) 3.0 프로토콜 No
SMB 3.0 TFO(투명 장애 조치(failover)) No
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 No
CsvFS(클러스터 공유 볼륨 파일 시스템) Yes
ReFS(Resilient File System) Yes

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
머리글 winioctl.h(Windows.h 포함)

추가 정보

CreateFile

DeviceIoControl

파일 관리 제어 코드

GetDiskFreeSpace

GetDiskFreeSpaceEx

IOCTL_DISK_GET_DRIVE_LAYOUT

IOCTL_DISK_GET_DRIVE_LAYOUT_EX

IOCTL_DISK_GET_PARTITION_INFO

IOCTL_DISK_GET_PARTITION_INFO_EX

OVERLAPPED