FsRtlCreateSectionForDataScan 函式 (ntifs.h)
FsRtlCreateSectionForDataScan 例程會建立區段物件。 請謹慎使用此例程。 (請參閱下列 一節。)
語法
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
);
參數
[out] SectionHandle
呼叫端配置的變數指標,該變數會接收區段物件的不透明句柄。
[out] SectionObject
呼叫端配置的變數指標,該變數會接收區段物件的不透明指標。
[out, optional] SectionFileSize
呼叫端配置的變數指標,該變數會在建立區段物件時接收檔案的大小,以位元組為單位。 這個參數是選擇性的,而且可以 NULL。
[in] FileObject
開啟檔案的 File 物件。 區段物件將由指定的檔案支援。 這是必要參數,而且無法 NULL。
[in] DesiredAccess
將區段物件的所需存取指定為下列一或多個 ACCESS_MASK 旗標。
DesiredAccess 旗標 | 允許呼叫端 |
---|---|
SECTION_MAP_READ | 讀取區段的檢視。 |
SECTION_MAP_WRITE | 撰寫區段的檢視。 |
SECTION_QUERY | 查詢區段物件以取得區段的相關信息。 驅動程式應該設定此旗標。 |
SECTION_ALL_ACCESS | 先前旗標以及STANDARD_RIGHTS_REQUIRED所定義的所有動作。 (如需STANDARD_RIGHTS_REQUIRED的詳細資訊,請參閱 ACCESS_MASK。 |
[in, optional] ObjectAttributes
指定物件名稱和其他屬性之 OBJECT_ATTRIBUTES 結構的指標。 使用 InitializeObjectAttributes 巨集初始化這個結構。 因為 FsRtlCreateSectionForDataScan 將此物件插入進程句柄數據表中,所以呼叫者在呼叫 InitializeObjectAttributes 時,必須指定OBJ_KERNEL_HANDLE屬性。
[in, optional] MaximumSize
此參數保留供日後使用。
[in] SectionPageProtection
指定要在 區段中每個頁面放置的保護。 指定下列其中一個值。 這是必要參數,不能為零。
旗 | 意義 |
---|---|
PAGE_READONLY | 啟用頁面認可區域的唯讀存取。 嘗試寫入認可的區域會導致存取違規。 如果系統區分只讀存取和執行存取權,則嘗試在認可的區域中執行程式代碼會導致存取違規。 |
PAGE_READWRITE | 啟用頁面認可區域的讀取和寫入存取權。 |
[in] AllocationAttributes
SEC_XXX 旗標的位掩碼會決定 區段的配置屬性。 指定下列一或多個值。 這是必要參數,不能為零。
旗 | 意義 |
---|---|
SEC_COMMIT | 配置記憶體中的實體記憶體,或在磁碟上的分頁檔案中配置區段的所有頁面。 這是預設設定。 請注意,此旗標是必要的,因此無法省略。 |
SEC_FILE | FileObject 參數所指定的檔案是對應的檔案。 |
[in] Flags
此參數保留供日後使用。
傳回值
FsRtlCreateSectionForDataScan 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,例如下列其中一項:
傳回碼 | 描述 |
---|---|
|
FileObject 參數所指定的檔案大小為零。 這是錯誤碼。 |
|
FileObject 參數指定的檔案已鎖定。 這是錯誤碼。 |
|
FsRtlCreateSectionForDataScan 發生集區配置失敗。 這是錯誤碼。 |
|
FileObject 參數指定的檔案不支援區段。 這是錯誤碼。 |
|
針對 SectionPageProtection 參數指定的值無效。 這是錯誤碼。 |
|
呼叫端為 AllocationAttributes 參數指定了無效的值。 這是錯誤碼。 |
|
呼叫端沒有建立具有 DesiredAccess 參數中所指定存取權的區段物件所需的許可權。 這是錯誤碼。 |
言論
如需建立記憶體對應區段和檢視的詳細資訊,請參閱 區段物件和檢視。 另請參閱 Microsoft Windows SDK 中 CreateFileMapping 例程的檔。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 2000 Service Pack 4 的更新匯總(SP4):Windows XP Service Pack 2 的篩選管理員匯總套件 (SP2)。 |
支援的最低伺服器 | Microsoft Windows Server 2003 SP1 |
目標平臺 | 普遍 |
標頭 | ntifs.h (include Ntifs.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |