開いているセクション オブジェクトのベース アドレス、サイズ、許可されたアクセス権、割り当てを決定する機能を提供します。
構文
NTSTATUS NTAPI NtQuerySection (
_In_ HANDLE SectionHandle,
_In_ SECTION_INFORMATION_CLASS SectionInformationClass,
_Out_writes_bytes_(SectionInformationLength) PVOID SectionInformation,
_In_ SIZE_T SectionInformationLength,
_Out_opt_ PSIZE_T ReturnLength
)
パラメーター
SectionHandle [in]
セクション オブジェクトへの開いているハンドル。
SectionInformationClass [in]
情報を取得するセクション情報クラス。
SectionInformation [out]
指定した情報を受け取るバッファーへのポインター。 バッファーの形式と内容は、指定したセクション クラスによって異なります。
SectionInformationLength [in]
セクション情報バッファーの長さをバイト単位で指定します。
ReturnLength [out]
省略可能なポインター。指定されている場合は、セクション情報バッファーに配置されたバイト数を受け取ります。
戻り値
NTSTATUS コード。 詳細については、「 NTSTATUS 値の使用」を参照してください。
解説
この関数には、インポート ライブラリまたはヘッダー ファイルが関連付けされません。 LoadLibrary 関数と GetProcAddress 関数を使用して呼び出す必要があります。 API は、ntdll.dll からエクスポートされます。
SectionInformation パラメーターの型がPSECTION_BASIC_INFORMATION
typedef struct _SECTIONBASICINFO {
PVOID BaseAddress;
ULONG AllocationAttributes;
LARGE_INTEGER MaximumSize;
} SECTION_BASIC_INFORMATION, *PSECTION_BASIC_INFORMATION;
PVOID BaseAddress
セクションがベースの場合は、セクションのベース仮想アドレス。
ULONG AllocationAttributes
割り当て属性フラグ。
| フラグ | 値 | 説明 |
|---|---|---|
| SEC_BASED | 0x200000 | セクションはベースセクションです。 |
| SEC_FILE | 0x800000 | セクションは、データ ファイルによってサポートされます。 |
| SEC_RESERVE | 0x4000000 | セクションのすべてのページは、最初は予約状態に設定されていました。 |
| SEC_COMMIT | 0x8000000 | セクションのすべてのページは、最初はコミット済み状態に設定されていました。 |
| SEC_IMAGE | 0x1000000 | セクションは実行可能イメージ ファイルとしてマップされました。 |
LARGE_INTEGER MaximumSize
セクションの最大サイズ (バイト単位)。
必要条件
| 要件 | 値 |
|---|---|
| [DLL] | ntdll.dll |