ホーム › Storage.IndexServer › CI_STATE
CI_STATE
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| cbStruct | DWORD | 4 | +0 | +0 | この構造体のサイズ (バイト単位)。 |
| cWordList | DWORD | 4 | +4 | +4 | 現在のワード リストの数。 |
| cPersistentIndex | DWORD | 4 | +8 | +8 | 永続インデックスの数。 |
| cQueries | DWORD | 4 | +12 | +12 | 実際に実行中のクエリの数。 |
| cDocuments | DWORD | 4 | +16 | +16 | フィルター処理を待機しているドキュメントの数。 |
| cFreshTest | DWORD | 4 | +20 | +20 | ワード リストおよびシャドウ インデックス内の一意のドキュメントの数。 |
| dwMergeProgress | DWORD | 4 | +24 | +24 | マージが実行中の場合、その現在のマージの完了率。 |
| eState | DWORD | 4 | +28 | +28 | コンテンツのインデックス作成の状態。CI_STATE_* 定数のうち 1 つ以上を指定できます。 |
| cFilteredDocuments | DWORD | 4 | +32 | +32 | コンテンツのインデックス作成が開始されてからフィルター処理されたドキュメントの数。 |
| cTotalDocuments | DWORD | 4 | +36 | +36 | システム内のドキュメントの総数。 |
| cPendingScans | DWORD | 4 | +40 | +40 | 保留中のスキャンの数。ディレクトリ一覧内のスコープごとに 1 つ存在する可能性があります。この値は通常 0 ですが、コンテンツのインデックス作成を開始した直後や、通知キューがオーバーフローした直後は例外です。 |
| dwIndexSize | DWORD | 4 | +44 | +44 | インデックスのサイズ (メガバイト単位、プロパティ キャッシュを除く)。 |
| cUniqueKeys | DWORD | 4 | +48 | +48 | マスター インデックス内の一意のキーの数。 |
| cSecQDocuments | DWORD | 4 | +52 | +52 | セカンダリ キュー内のドキュメントの数。セカンダリ キューには、共有違反によりフィルター処理に失敗したドキュメントが格納されます。 |
| dwPropCacheSize | DWORD | 4 | +56 | +56 | プロパティ キャッシュのサイズ (メガバイト単位)。 |
公式ドキュメント
メモ
インデックス サービスは Windows XP 以降サポートされておらず、Windows 8 以降は使用できません。代わりに、クライアント側の検索には Windows Search を、サーバー側の検索には Microsoft Search Server Express を使用してください。
インデックス サービスのカタログの現在の状態を表します。
解説(Remarks)
この構造体を使用する場合、すべてのメンバーは出力値です。cbStruct メンバーのみ、入力値と出力値の両方になります。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
#include <windows.h>
// CI_STATE (x64 60 / x86 60 バイト)
typedef struct CI_STATE {
DWORD cbStruct;
DWORD cWordList;
DWORD cPersistentIndex;
DWORD cQueries;
DWORD cDocuments;
DWORD cFreshTest;
DWORD dwMergeProgress;
DWORD eState;
DWORD cFilteredDocuments;
DWORD cTotalDocuments;
DWORD cPendingScans;
DWORD dwIndexSize;
DWORD cUniqueKeys;
DWORD cSecQDocuments;
DWORD dwPropCacheSize;
} CI_STATE;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct CI_STATE
{
public uint cbStruct;
public uint cWordList;
public uint cPersistentIndex;
public uint cQueries;
public uint cDocuments;
public uint cFreshTest;
public uint dwMergeProgress;
public uint eState;
public uint cFilteredDocuments;
public uint cTotalDocuments;
public uint cPendingScans;
public uint dwIndexSize;
public uint cUniqueKeys;
public uint cSecQDocuments;
public uint dwPropCacheSize;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure CI_STATE
Public cbStruct As UInteger
Public cWordList As UInteger
Public cPersistentIndex As UInteger
Public cQueries As UInteger
Public cDocuments As UInteger
Public cFreshTest As UInteger
Public dwMergeProgress As UInteger
Public eState As UInteger
Public cFilteredDocuments As UInteger
Public cTotalDocuments As UInteger
Public cPendingScans As UInteger
Public dwIndexSize As UInteger
Public cUniqueKeys As UInteger
Public cSecQDocuments As UInteger
Public dwPropCacheSize As UInteger
End Structureimport ctypes
from ctypes import wintypes
class CI_STATE(ctypes.Structure):
_fields_ = [
("cbStruct", wintypes.DWORD),
("cWordList", wintypes.DWORD),
("cPersistentIndex", wintypes.DWORD),
("cQueries", wintypes.DWORD),
("cDocuments", wintypes.DWORD),
("cFreshTest", wintypes.DWORD),
("dwMergeProgress", wintypes.DWORD),
("eState", wintypes.DWORD),
("cFilteredDocuments", wintypes.DWORD),
("cTotalDocuments", wintypes.DWORD),
("cPendingScans", wintypes.DWORD),
("dwIndexSize", wintypes.DWORD),
("cUniqueKeys", wintypes.DWORD),
("cSecQDocuments", wintypes.DWORD),
("dwPropCacheSize", wintypes.DWORD),
]#[repr(C)]
pub struct CI_STATE {
pub cbStruct: u32,
pub cWordList: u32,
pub cPersistentIndex: u32,
pub cQueries: u32,
pub cDocuments: u32,
pub cFreshTest: u32,
pub dwMergeProgress: u32,
pub eState: u32,
pub cFilteredDocuments: u32,
pub cTotalDocuments: u32,
pub cPendingScans: u32,
pub dwIndexSize: u32,
pub cUniqueKeys: u32,
pub cSecQDocuments: u32,
pub dwPropCacheSize: u32,
}import "golang.org/x/sys/windows"
type CI_STATE struct {
cbStruct uint32
cWordList uint32
cPersistentIndex uint32
cQueries uint32
cDocuments uint32
cFreshTest uint32
dwMergeProgress uint32
eState uint32
cFilteredDocuments uint32
cTotalDocuments uint32
cPendingScans uint32
dwIndexSize uint32
cUniqueKeys uint32
cSecQDocuments uint32
dwPropCacheSize uint32
}type
CI_STATE = record
cbStruct: DWORD;
cWordList: DWORD;
cPersistentIndex: DWORD;
cQueries: DWORD;
cDocuments: DWORD;
cFreshTest: DWORD;
dwMergeProgress: DWORD;
eState: DWORD;
cFilteredDocuments: DWORD;
cTotalDocuments: DWORD;
cPendingScans: DWORD;
dwIndexSize: DWORD;
cUniqueKeys: DWORD;
cSecQDocuments: DWORD;
dwPropCacheSize: DWORD;
end;const CI_STATE = extern struct {
cbStruct: u32,
cWordList: u32,
cPersistentIndex: u32,
cQueries: u32,
cDocuments: u32,
cFreshTest: u32,
dwMergeProgress: u32,
eState: u32,
cFilteredDocuments: u32,
cTotalDocuments: u32,
cPendingScans: u32,
dwIndexSize: u32,
cUniqueKeys: u32,
cSecQDocuments: u32,
dwPropCacheSize: u32,
};type
CI_STATE {.bycopy.} = object
cbStruct: uint32
cWordList: uint32
cPersistentIndex: uint32
cQueries: uint32
cDocuments: uint32
cFreshTest: uint32
dwMergeProgress: uint32
eState: uint32
cFilteredDocuments: uint32
cTotalDocuments: uint32
cPendingScans: uint32
dwIndexSize: uint32
cUniqueKeys: uint32
cSecQDocuments: uint32
dwPropCacheSize: uint32struct CI_STATE
{
uint cbStruct;
uint cWordList;
uint cPersistentIndex;
uint cQueries;
uint cDocuments;
uint cFreshTest;
uint dwMergeProgress;
uint eState;
uint cFilteredDocuments;
uint cTotalDocuments;
uint cPendingScans;
uint dwIndexSize;
uint cUniqueKeys;
uint cSecQDocuments;
uint dwPropCacheSize;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; CI_STATE サイズ: 60 バイト(x64)
dim st, 15 ; 4byte整数×15(構造体サイズ 60 / 4 切り上げ)
; cbStruct : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; cWordList : DWORD (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; cPersistentIndex : DWORD (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; cQueries : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; cDocuments : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; cFreshTest : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; dwMergeProgress : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; eState : DWORD (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; cFilteredDocuments : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; cTotalDocuments : DWORD (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; cPendingScans : DWORD (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; dwIndexSize : DWORD (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; cUniqueKeys : DWORD (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; cSecQDocuments : DWORD (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; dwPropCacheSize : DWORD (+56, 4byte) st.14 = 値 / 値 = st.14 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global CI_STATE
#field int cbStruct
#field int cWordList
#field int cPersistentIndex
#field int cQueries
#field int cDocuments
#field int cFreshTest
#field int dwMergeProgress
#field int eState
#field int cFilteredDocuments
#field int cTotalDocuments
#field int cPendingScans
#field int dwIndexSize
#field int cUniqueKeys
#field int cSecQDocuments
#field int dwPropCacheSize
#endstruct
stdim st, CI_STATE ; NSTRUCT 変数を確保
st->cbStruct = 100
mes "cbStruct=" + st->cbStruct