FSCTL_GET_VOLUME_BITMAP IOCTL (winioctl.h)
Ruft eine Bitmap mit belegten und verfügbaren Clustern auf einem Volume ab.
Um diesen Vorgang auszuführen, rufen Sie die Funktion DeviceIoControl mit den folgenden Parametern auf.
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to volume
FSCTL_GET_VOLUME_BITMAP, // dwIoControlCode
(LPVOID) lpInBuffer, // input buffer
(DWORD) nInBufferSize, // size of input buffer
(LPVOID) lpOutBuffer, // output buffer
(DWORD) nOutBufferSize, // size of output buffer
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
Hinweise
Der FSCTL_GET_VOLUME_BITMAP Steuerungscode ruft eine Datenstruktur ab, die den Zuordnungsstatus jedes Clusters im Dateisystem vom angeforderten Start-LCN bis zum letzten Cluster auf dem Volume beschreibt. Die Bitmap verwendet ein Bit, um jeden Cluster darzustellen:
- Der Wert 1 gibt an, dass der Cluster zugeordnet (in Verwendung) ist.
- Der Wert 0 gibt an, dass der Cluster nicht zugeordnet ist (frei).
Beachten Sie, dass die Bitmap einen Zeitpunkt darstellt und falsch sein kann, sobald sie gelesen wurde, wenn das Volume schreibaktivität aufweist. Daher ist es möglich, einen Cluster in einen zugeordneten Cluster zu verschieben, obwohl eine aktuelle Bitmap darauf hinweist, dass der Cluster nicht zugeordnet ist. Programme, die die DeviceIoControl-Funktion mit dem FSCTL_MOVE_FILE Steuercode verwenden, müssen auf diese Möglichkeit vorbereitet werden.
Das hier verwendete Handle muss ein Volumehandle sein und mit jedem Zugriff geöffnet sein. Beachten Sie, dass nur Administratoren Volumehandles öffnen können.
Die starte LCN im Eingabepuffer kann abgerundet werden, bevor die Bitmap berechnet wird. Der Rundungsgrenzwert ist vom Dateisystem abhängig.
Die Auswirkungen von überlappenden E/A-Vorgängen auf diesen Vorgang finden Sie im Abschnitt Hinweise des Themas DeviceIoControl .
Dieser Vorgang richtet die zurückgegebene Bitmap an einer Seitengrenze aus.
Windows Server 2003 und Windows XP: Dieser Vorgang richtet die zurückgegebene Bitmap an einer Bytegrenze aus.
In Windows 8 und Windows Server 2012 wird dieser Code von den folgenden Technologien unterstützt.
Technologie | Unterstützt |
---|---|
SMB 3.0-Protokoll (Server Message Block) | No |
SMB 3.0 Transparent Failover (TFO) | No |
SMB 3.0 mit Dateifreigaben mit horizontaler Skalierung (SO) | No |
Dateisystem mit freigegebenen Clustervolumes (CsvFS) | Ja |
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Kopfzeile | winioctl.h (windows.h einschließen) |