FsRtlCreateSectionForDataScan-Funktion (ntifs.h)
Die FsRtlCreateSectionForDataScan Routine erstellt ein Abschnittsobjekt. Verwenden Sie diese Routine mit äußerster Vorsicht. (Siehe den folgenden Abschnitt "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 für 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
Zeigen Sie auf eine vom Aufrufer zugewiesene Variable, die die Größe der Datei zum Zeitpunkt der Erstellung des Abschnittsobjekts in Bytes empfängt. Dieser Parameter ist optional und kann NULL-werden.
[in] FileObject
File-Objekt für eine geöffnete Datei. Das Abschnittsobjekt wird von der angegebenen Datei unterstützt. Dieser Parameter ist erforderlich und kann nicht NULL-werden.
[in] DesiredAccess
Gibt den gewünschten Zugriff für das Abschnittsobjekt als eine oder mehrere der folgenden ACCESS_MASK Flags an.
DesiredAccess Flag | Ermöglicht den Anrufer |
---|---|
SECTION_MAP_READ | Leseansichten des Abschnitts. |
SECTION_MAP_WRITE | Schreibansichten des Abschnitts. |
SECTION_QUERY | Fragen Sie das Abschnittsobjekt nach Informationen zum Abschnitt ab. Treiber sollten dieses Kennzeichen festlegen. |
SECTION_ALL_ACCESS | Alle Aktionen, die von den vorherigen Flags definiert wurden, sowie die durch STANDARD_RIGHTS_REQUIRED definierten Aktionen. (Weitere Informationen zu STANDARD_RIGHTS_REQUIRED finden Sie unter ACCESS_MASK.) |
[in, optional] ObjectAttributes
Zeigen Sie auf eine OBJECT_ATTRIBUTES Struktur, die den Objektnamen und andere Attribute angibt. Verwenden Sie die InitializeObjectAttributes Makro, um diese Struktur zu initialisieren. Da FsRtlCreateSectionForDataScan dieses Objekt in die Prozesshandle-Tabelle einfügt, muss der Aufrufer das attribut OBJ_KERNEL_HANDLE angeben, wenn es InitializeObjectAttributesaufruft.
[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 null sein.
Flagge | Bedeutung |
---|---|
PAGE_READONLY | Ermöglicht schreibgeschützten Zugriff auf den zugesicherten Seitenbereich. Ein Versuch, in die zugesicherte Region zu schreiben, führt zu einer Zugriffsverletzung. Wenn das System zwischen schreibgeschütztem Zugriff und Ausführung des Zugriffs unterscheidet, führt ein Versuch, Code in der zugesicherten Region auszuführen, zu einer Zugriffsverletzung. |
PAGE_READWRITE | Ermöglicht sowohl Lese- als auch Schreibzugriff auf den zugesicherten Seitenbereich. |
[in] AllocationAttributes
Bitmasken der SEC_XXX Flags bestimmen die Zuordnungsattribute des Abschnitts. Geben Sie einen oder mehrere der folgenden Werte an. Dieser Parameter ist erforderlich und darf nicht null sein.
Flagge | Bedeutung |
---|---|
SEC_COMMIT | Weist 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 vom 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 geeigneten NTSTATUS-Wert zurück, z. B. einen der folgenden:
Rückgabecode | Beschreibung |
---|---|
|
Die Größe der durch den FileObject-Parameter angegebenen Datei ist Null. Dies ist ein Fehlercode. |
|
Die durch den FileObject-Parameter angegebene Datei ist gesperrt. Dies ist ein Fehlercode. |
|
FsRtlCreateSectionForDataScan hat einen Poolzuordnungsfehler festgestellt. Dies ist ein Fehlercode. |
|
Die durch den Parameter FileObject 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 erforderlichen Berechtigungen zum Erstellen eines Abschnittsobjekts mit dem im Parameter DesiredAccess angegebenen Zugriff. Dies ist ein Fehlercode. |
Bemerkungen
Weitere Informationen zum Erstellen zugeordneter Abschnitte und Ansichten des Arbeitsspeichers finden Sie unter Section Objects and Views. Weitere Informationen finden Sie in der Dokumentation zur CreateFileMapping Routine im Microsoft Windows SDK.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Updaterollup für Windows 2000 Service Pack 4 (SP4); Filter-Manager-Rollup für Windows XP Service Pack 2 (SP2). |
mindestens unterstützte Server- | Microsoft Windows Server 2003 SP1 |
Zielplattform- | Universal |
Header- | ntifs.h (einschließlich Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | <= APC_LEVEL |