Funzione FsRtlCreateSectionForDataScan (ntifs.h)
La routine FsRtlCreateSectionForDataScan crea un oggetto sezione. Utilizzare questa routine con estrema cautela. Vedere la sezione
Sintassi
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
);
Parametri
[out] SectionHandle
Puntatore a una variabile allocata dal chiamante che riceve un handle opaco per l'oggetto sezione.
[out] SectionObject
Puntatore a una variabile allocata dal chiamante che riceve un puntatore opaco all'oggetto sezione.
[out, optional] SectionFileSize
Puntatore a una variabile allocata dal chiamante che riceve le dimensioni, in byte, del file al momento della creazione dell'oggetto sezione. Questo parametro è facoltativo e può essere NULL.
[in] FileObject
Oggetto file per un file aperto. L'oggetto sezione verrà supportato dal file specificato. Questo parametro è obbligatorio e non può essere NULL.
[in] DesiredAccess
Specifica l'accesso desiderato per l'oggetto sezione come uno o più dei flag di ACCESS_MASK seguenti.
flag di DesiredAccess |
Consente al chiamante di |
---|---|
SECTION_MAP_READ | Consente di leggere le visualizzazioni della sezione. |
SECTION_MAP_WRITE | Scrivere visualizzazioni della sezione. |
SECTION_QUERY | Eseguire una query sull'oggetto sezione per ottenere informazioni sulla sezione . I driver devono impostare questo flag. |
SECTION_ALL_ACCESS | Tutte le azioni definite dai flag precedenti e definite da STANDARD_RIGHTS_REQUIRED. Per altre informazioni sulle STANDARD_RIGHTS_REQUIRED, vedere ACCESS_MASK.) |
[in, optional] ObjectAttributes
Puntatore a una struttura OBJECT_ATTRIBUTES che specifica il nome dell'oggetto e altri attributi. Utilizzare la macro InitializeObjectAttributes per inizializzare questa struttura. Poiché FsRtlCreateSectionForDataScan inserisce questo oggetto nella tabella handle del processo, il chiamante deve specificare l'attributo OBJ_KERNEL_HANDLE quando chiama InitializeObjectAttributes.
[in, optional] MaximumSize
Questo parametro è riservato per un uso futuro.
[in] SectionPageProtection
Specifica la protezione da inserire in ogni pagina della sezione. Specificare uno dei valori seguenti. Questo parametro è obbligatorio e non può essere zero.
Bandiera | Significato |
---|---|
PAGE_READONLY | Abilita l'accesso in sola lettura all'area di cui è stato eseguito il commit delle pagine. Un tentativo di scrittura nell'area di cui è stato eseguito il commit comporta una violazione di accesso. Se il sistema distingue l'accesso in sola lettura e l'accesso in esecuzione, un tentativo di eseguire codice nell'area di cui è stato eseguito il commit comporta una violazione di accesso. |
PAGE_READWRITE | Abilita sia l'accesso in lettura che in scrittura all'area di cui è stato eseguito il commit delle pagine. |
[in] AllocationAttributes
Le maschera di bit dei flag SEC_XXX determinano gli attributi di allocazione della sezione. Specificare uno o più dei valori seguenti. Questo parametro è obbligatorio e non può essere zero.
Bandiera | Significato |
---|---|
SEC_COMMIT | Alloca l'archiviazione fisica in memoria o nel file di paging su disco per tutte le pagine di una sezione. Questa è l'impostazione predefinita. Si noti che questo flag è obbligatorio e non può essere omesso. |
SEC_FILE |
Il file specificato dal parametro FileObject |
[in] Flags
Questo parametro è riservato per un uso futuro.
Valore restituito
FsRtlCreateSectionForDataScan restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio uno dei seguenti:
Codice restituito | Descrizione |
---|---|
|
Le dimensioni del file specificato dal parametro FileObject sono pari a zero. Si tratta di un codice di errore. |
|
Il file specificato dal parametro FileObject è bloccato. Si tratta di un codice di errore. |
|
FsRtlCreateSectionForDataScan ha rilevato un errore di allocazione del pool. Si tratta di un codice di errore. |
|
Il file specificato dal parametro FileObject non supporta le sezioni. Si tratta di un codice di errore. |
|
Il valore specificato per il parametro SectionPageProtection non è valido. Si tratta di un codice di errore. |
|
Il chiamante ha specificato un valore non valido per il parametro AllocationAttributes. Si tratta di un codice di errore. |
|
Il chiamante non dispone del privilegio necessario per creare un oggetto sezione con l'accesso specificato nel parametro DesiredAccess. Si tratta di un codice di errore. |
Osservazioni
Per altre informazioni sulla creazione di sezioni mappate e viste di memoria, vedere oggetti sezione e viste. Vedere anche la documentazione relativa alla routine CreateFileMapping
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Aggiornamento cumulativo per Windows 2000 Service Pack 4 (SP4); Rollup di Gestione filtri per Windows XP Service Pack 2 (SP2). |
server minimo supportato | Microsoft Windows Server 2003 SP1 |
piattaforma di destinazione | Universale |
intestazione |
ntifs.h (include Ntifs.h) |
libreria |
NtosKrnl.lib |
dll | NtosKrnl.exe |
IRQL | <= APC_LEVEL |