FsRtlCreateSectionForDataScan-Funktion (ntifs.h)
Die FsRtlCreateSectionForDataScan-Routine erstellt ein Abschnittsobjekt. Verwenden Sie diese Routine mit äußerster Vorsicht. (Weitere Informationen finden Sie im folgenden Abschnitt mit den Anmerkungen .)
Syntax
NTSTATUS FsRtlCreateSectionForDataScan(
[out] PHANDLE SectionHandle,
[out] PVOID *SectionObject,
[out, optional] PLARGE_INTEGER SectionFileSize,
[in] PFILE_OBJECT FileObject,
[in] ACCESS_MASK DesiredAccess,
[in, optional] POBJECT_ATTRIBUTES ObjectAttributes,
[in, optional] PLARGE_INTEGER MaximumSize,
[in] ULONG SectionPageProtection,
[in] ULONG AllocationAttributes,
[in] ULONG Flags
);
Parameter
[out] SectionHandle
Zeiger auf eine vom Aufrufer zugewiesene Variable, die ein undurchsichtiges Handle auf das Abschnittsobjekt empfängt.
[out] SectionObject
Zeiger auf eine vom Aufrufer zugewiesene Variable, die einen undurchsichtigen Zeiger auf das Abschnittsobjekt empfängt.
[out, optional] SectionFileSize
Zeiger auf eine vom Aufrufer zugewiesene Variable, die die Größe der Datei in Bytes zum Zeitpunkt der Erstellung des Abschnittsobjekts empfängt. Dieser Parameter ist optional und kann NULL sein.
[in] FileObject
Dateiobjekt für eine geöffnete Datei. Das Abschnittsobjekt wird von der angegebenen Datei unterstützt. Dieser Parameter ist erforderlich und darf nicht NULL sein.
[in] DesiredAccess
Gibt den gewünschten Zugriff für das Abschnittsobjekt als mindestens eines der folgenden ACCESS_MASK-Flags an.
DesiredAccess-Flag | Ermöglicht dem Anrufer, |
---|---|
SECTION_MAP_READ | Leseansichten des Abschnitts. |
SECTION_MAP_WRITE | Schreiben Sie Ansichten des Abschnitts. |
SECTION_QUERY | Fragen Sie das Abschnittsobjekt nach Informationen zum Abschnitt ab. Treiber sollten dieses Flag festlegen. |
SECTION_ALL_ACCESS | Alle Aktionen, die durch die vorherigen Flags definiert wurden, sowie die aktionen, die durch STANDARD_RIGHTS_REQUIRED definiert wurden. (Weitere Informationen zu STANDARD_RIGHTS_REQUIRED finden Sie unter ACCESS_MASK.) |
[in, optional] ObjectAttributes
Zeiger auf eine OBJECT_ATTRIBUTES-Struktur , die den Objektnamen und andere Attribute angibt. Verwenden Sie das Makro InitializeObjectAttributes , um diese Struktur zu initialisieren. Da FsRtlCreateSectionForDataScan dieses Objekt in die Prozesshandle-Tabelle einfügt, muss der Aufrufer beim Aufrufen von InitializeObjectAttributes das attribut OBJ_KERNEL_HANDLE angeben.
[in, optional] MaximumSize
Dieser Parameter ist für die zukünftige Verwendung reserviert.
[in] SectionPageProtection
Gibt den Schutz an, der auf jeder Seite im Abschnitt platziert werden soll. Geben Sie einen der folgenden Werte an. Dieser Parameter ist erforderlich und darf nicht 0 sein.
Flag | Bedeutung |
---|---|
PAGE_READONLY | Ermöglicht schreibgeschützten Zugriff auf den zugesicherten Seitenbereich. Ein Versuch, in die region zu schreiben, führt zu einer Zugriffsverletzung. Wenn das System zwischen schreibgeschütztem Zugriff und Ausführungszugriff unterscheidet, führt ein Versuch, Code in der committeten Region auszuführen, zu einer Zugriffsverletzung. |
PAGE_READWRITE | Ermöglicht Lese- und Schreibzugriff auf den zugesicherten Seitenbereich. |
[in] AllocationAttributes
Bitmasken der SEC_XXX-Flags bestimmen die Zuordnungsattribute des Abschnitts. Geben Sie mindestens einen der folgenden Werte an. Dieser Parameter ist erforderlich und darf nicht 0 sein.
Flag | Bedeutung |
---|---|
SEC_COMMIT | Ordnet physischen Speicher im Arbeitsspeicher oder in der Auslagerungsdatei auf dem Datenträger für alle Seiten eines Abschnitts zu. Dies ist die Standardeinstellung. Beachten Sie, dass dieses Flag erforderlich ist und nicht weggelassen werden kann. |
SEC_FILE | Die durch den FileObject-Parameter angegebene Datei ist eine zugeordnete Datei. |
[in] Flags
Dieser Parameter ist für die zukünftige Verwendung reserviert.
Rückgabewert
FsRtlCreateSectionForDataScan gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Wert zurück, z. B. einen der folgenden:
Rückgabecode | Beschreibung |
---|---|
|
Die Größe der Datei, die durch den FileObject-Parameter angegeben wird, ist 0. Dies ist ein Fehlercode. |
|
Die durch den FileObject-Parameter angegebene Datei ist gesperrt. Dies ist ein Fehlercode. |
|
Bei FsRtlCreateSectionForDataScan ist ein Poolzuordnungsfehler aufgetreten. Dies ist ein Fehlercode. |
|
Die vom FileObject-Parameter angegebene Datei unterstützt keine Abschnitte. Dies ist ein Fehlercode. |
|
Der für den SectionPageProtection-Parameter angegebene Wert ist ungültig. Dies ist ein Fehlercode. |
|
Der Aufrufer hat einen ungültigen Wert für den AllocationAttributes-Parameter angegeben. Dies ist ein Fehlercode. |
|
Der Aufrufer verfügte nicht über die erforderliche Berechtigung zum Erstellen eines Abschnittsobjekts mit dem im DesiredAccess-Parameter angegebenen Zugriff. Dies ist ein Fehlercode. |
Hinweise
Weitere Informationen zum Erstellen zugeordneter Abschnitte und Ansichten des Arbeitsspeichers finden Sie unter Abschnittsobjekte und Ansichten. Lesen Sie auch die Dokumentation zur CreateFileMapping-Routine im Microsoft Windows SDK.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Updaterollup für Windows 2000 Service Pack 4 (SP4); Filter-Managerrollup für Windows XP Service Pack 2 (SP2). |
Unterstützte Mindestversion (Server) | Microsoft Windows Server 2003 SP1 |
Zielplattform | Universell |
Header | ntifs.h (include Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für