FltAttachVolumeAtAltitude-Funktion (fltkernel.h)
FltAttachVolumeAtAltitude ist eine Debugunterstützungsroutine, die einen Minifiltertreiber instance an ein Volume in einer angegebenen Höhe anfügt und alle Einstellungen in der INF-Datei des Minifiltertreibers überschreibt.
Syntax
NTSTATUS FLTAPI FltAttachVolumeAtAltitude(
[in, out] PFLT_FILTER Filter,
[in, out] PFLT_VOLUME Volume,
[in] PCUNICODE_STRING Altitude,
[in, optional] PCUNICODE_STRING InstanceName,
[out, optional] PFLT_INSTANCE *RetInstance
);
Parameter
[in, out] Filter
Undurchsichtiger Filterzeiger für den Aufrufer. Dieser Parameter ist erforderlich und darf nicht NULL sein.
[in, out] Volume
Undurchsichtiger Volumezeiger für das Volume, an das der Minifiltertreiber instance angefügt werden soll. Dieser Parameter ist erforderlich und darf nicht NULL sein.
[in] Altitude
Zeiger auf eine UNICODE_STRING-Struktur, die die Höhenzeichenfolge für die instance enthält. Dieser Parameter ist erforderlich und darf nicht NULL sein. (Weitere Informationen zu diesem Parameter finden Sie im folgenden Abschnitt "Hinweise".)
[in, optional] InstanceName
Zeiger auf eine UNICODE_STRING-Struktur, die den instance Namen für die neue instance enthält. Dieser Parameter ist optional und kann NULL sein. Wenn es NULL ist, generiert FltAttachVolumeAtAltitude einen instance Namen aus dem Namen des Minifiltertreibers und der Höhenzeichenfolge, auf die Höhe zeigt. Der generierte Name wird bei Bedarf abgeschnitten, um Zeichen zu INSTANCE_NAME_MAX_CHARS.
[out, optional] RetInstance
Zeiger auf eine vom Aufrufer zugewiesene Variable, die einen undurchsichtigen instance-Zeiger für die neu erstellte instance empfängt. Dieser Parameter ist optional und kann NULL sein.
Rückgabewert
FltAttachVolumeAtAltitude gibt STATUS_SUCCESS oder einen geeigneten NTSTATUS-Wert zurück, z. B. einen der folgenden:
Rückgabecode | Beschreibung |
---|---|
|
Der angegebene Filter oder das angegebene Volume wird abgerissen. Dies ist ein Fehlercode. |
|
Der Minifiltertreiber hat die Filterung nicht gestartet. Weitere Informationen finden Sie unter FltStartFiltering. Dies ist ein Fehlercode. |
|
Ein instance in dieser Höhe auf der angegebenen Lautstärke bereits vorhanden. Dies ist ein Fehlercode. |
|
Auf dem angegebenen Volume ist bereits eine instance mit diesem Namen vorhanden. Dies ist ein Fehlercode. |
|
Bei FltAttachVolumeAtAltitude ist ein Poolzuordnungsfehler aufgetreten. Dies ist ein Fehlercode. |
|
Die UNICODE_STRING Struktur, auf die Höhe zeigt, enthielt keine gültige Höhenzeichenfolge. Dies ist ein Fehlercode. |
Hinweise
Ein Minifiltertreiber sollte nur FltAttachVolumeAtAltitude zum Debuggen verwenden. Diese Routine sollte nicht in einer Einzelhandelsversion des Minifiltertreibers aufgerufen werden.
FltAttachVolumeAtAltitude ist das Kerneläquivalent der Win32-Funktion FilterAttachAtAltitude .
Der Begriff "Höhe" bezieht sich auf die Position, die ein instance im Minifiltertreiber instance Stapel für ein Volume einnimmt (oder belegen sollte). Je höher die Höhe, desto weiter ist die instance vom Basisdateisystem im Stapel entfernt. Nur ein instance kann in einer bestimmten Höhe auf einem bestimmten Volume angebracht werden.
Die Höhe wird durch eine Höhenzeichenfolge angegeben, bei der es sich um ein Breitzeichenarray handelt, das eine oder mehrere Dezimalstellen von 0 bis 9 enthält; das Array kann ein einzelnes Dezimaltrennzeichen enthalten. Beispielsweise sind "100,123456" und "03333" gültige Höhenzeichenfolgen.
Die Zeichenfolge "03333" stellt eine höhere Höhe als "100,123456" dar (führende und nachfolgende Nullen werden ignoriert.) Anders ausgedrückt: Ein instance dessen Höhe "03333" ist, ist weiter vom Basisdateisystem entfernt als ein instance dessen Höhe "100,123456" ist. Dieser Vergleich ist jedoch nur sinnvoll, wenn beide Instanzen an dasselbe Volume angefügt sind.
Der im Parameter InstanceName angegebene instance Name muss im gesamten System eindeutig sein.
FltAttachVolumeAtAltitude gibt einen undurchsichtigen instance Zeiger für die neue instance in *RetInstance zurück. Dieser Zeigerwert identifiziert eindeutig den Minifiltertreiber instance und bleibt konstant, solange der instance an das Volume angefügt ist.
FltAttachVolumeAtAltitude fügt einen Rundownverweis auf den in *RetInstance zurückgegebenen undurchsichtigen instance-Zeiger hinzu. Wenn dieser Zeiger nicht mehr benötigt wird, muss der Aufrufer ihn durch Aufrufen von FltObjectDereference freigeben. Daher muss jeder erfolgreiche Aufruf von FltAttachVolumeAtAltitude durch einen nachfolgenden Aufruf von FltObjectDereference abgeglichen werden.
Rufen Sie FltCompareInstanceAltitudes auf, um die Höhe von zwei Minifiltertreiberinstanzen zu vergleichen, die an dasselbe Volume angefügt sind.
Um einen Minifiltertreiber instance von einem Volume zu trennen, rufen Sie FltDetachVolume auf.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | fltkernel.h (fltkernel.h einschließen) |
Bibliothek | FltMgr.lib |
IRQL | PASSIVE_LEVEL |