Freigeben über


FSCTL_ALLOW_EXTENDED_DASD_IO IOCTL (winioctl.h)

Signalisiert, dass der Dateisystemtreiber keine E/A-Begrenzungsprüfungen für Partitionslese- oder Schreibaufrufe durchführt. Stattdessen werden Begrenzungsprüfungen vom Gerätetreiber ausgeführt.

Rufen Sie zum Ausführen dieses Vorgangs die DeviceIoControl--Funktion mit den folgenden Parametern auf.

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
);

Bemerkungen

Ein Aufruf mit dem FSCTL_ALLOW_EXTENDED_DASD_IO-Steuerelementcode sollte nur mit großer Vorsicht von Programmierern verwendet werden, die mit der zugrunde liegenden Struktur einer Festplatte und eines Dateisystems vertraut sind. Falsche Verwendung oder ungenaue Überprüfung in nachfolgenden Schreibvorgängen in der Partition kann zu Schäden an Daten auf der Partition oder Zerstörung der gesamten Partition führen.

Der FSCTL_ALLOW_EXTENDED_DASD_IO Steuercode wird verwendet, um dem Dateisystemtreiber zu signalisieren, dass keine E/A-Begrenzungsprüfungen für Lese- oder Schreibaufrufe ausgeführt werden, die mit dem angegebenen Handle getätigt wurden. FSCTL_ALLOW_EXTENDED_DASD_IO ermöglicht den Zugriff auf ausgeblendete Sektoren, einen Teil der Partition, die zwischen dem ersten Sektor der Partition (dem Startparameterblock) und dem ersten nützlichen Sektor der Partition vorhanden sein kann. FSCTL_ALLOW_EXTENDED_DASD_IO ermöglicht auch den Zugriff auf verlorene Cluster, die zwischen dem letzten nützlichen Cluster und dem Ende der Partition vorhanden sein können.

E/A-Anforderungen, die nach diesem Vorgang ausgegeben wurden, werden direkt an den Gerätetreiber übergeben. Wenn diese nachfolgenden Aufrufe Anforderungsdaten über die Partitionsgrenze hinaus aufrufen, führt der Treiber dazu, dass sie fehlschlagen.

Die Auswirkungen überlappender E/A für diesen Vorgang finden Sie im Abschnitt "Hinweise" DeviceIoControl.

Um ein Handle für eine Partition abzurufen, rufen Sie CreateFile- auf, wobei der parameter lpFileName auf eine Zeichenfolge des folgenden Formulars festgelegt ist:

\\.\X-:

wobei X- der Laufwerkbuchstaben ist.

Die Anwendung, die CreateFile- aufruft, muss auch die FILE_SHARE_READ und FILE_SHARE_WRITE Flags im dwShareMode Parameter von CreateFileangeben. Weitere Informationen finden Sie im Abschnitt "Datenträgergeräte" in CreateFile-.

Um die Partitionsstruktur des Laufwerks zu ermitteln und zu ermitteln, ob das System die Partition erkennt, verwenden Sie den IOCTL_DISK_GET_DRIVE_LAYOUT_EX oder IOCTL_DISK_GET_DRIVE_LAYOUT Steuercode entsprechend. Verwenden Sie für ähnliche Informationen auf einer einzelnen Partition den IOCTL_DISK_GET_PARTITION_INFO_EX- oder IOCTL_DISK_GET_PARTITION_INFO Steuerelementcode entsprechend. Um die Größe eines Clusters zu ermitteln, verwenden Sie die GetDiskFreeSpaceEx- oder GetDiskFreeSpace--Funktion entsprechend.

In Windows Server 2012 wird diese Funktion von den folgenden Technologien unterstützt.

Technologie Abgestützt
Server Message Block (SMB) 3.0-Protokoll Nein
SMB 3.0 Transparent Failover (TFO) Nein
SMB 3.0 mit Skalierungsdateifreigaben (SO) Nein
Freigegebenes Clustervolumedateisystem (CsvFS) Ja
Resilient File System (ReFS) Ja

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows XP [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2003 [Nur Desktop-Apps]
Header- winioctl.h (enthalten Windows.h)

Siehe auch

CreateFile-

DeviceIoControl-

Dateiverwaltungskontrollcodes

GetDiskFreeSpace-

GetDiskFreeSpaceEx-

IOCTL_DISK_GET_DRIVE_LAYOUT

IOCTL_DISK_GET_DRIVE_LAYOUT_EX

IOCTL_DISK_GET_PARTITION_INFO

IOCTL_DISK_GET_PARTITION_INFO_EX

ÜBERLAPPENDE