Configuration Managerでは、関数はCreateSMSStatusMessage
ステータス メッセージ オブジェクトを割り当て、初期化し、ハンドルを取得します。
構文
[C/C++]
typedef DWORD (WINAPI *PROC_CREATESMSSTATUSMESSAGE)
(
PHANDLE phStatusMessageObject,
LPCSTR pszModuleName,
DWORD dwID,
DWORD dwWin32Error,
LPCSTR pszInsStr1,
LPCSTR pszInsStr2,
LPCSTR pszInsStr3,
LPCSTR pszInsStr4,
LPCSTR pszInsStr5,
LPCSTR pszInsStr6,
LPCSTR pszInsStr7,
LPCSTR pszInsStr8,
LPCSTR pszInsStr9,
LPCSTR pszInsStr10
);
パラメーター
phStatusMessageObject
データ型: PHANDLE
修飾子: [in, out]
オブジェクト ハンドルへのポインター。 入力時に、作成するステータス メッセージのハンドルを指定します。 この関数から正常に戻ると、パラメーターは作成されたオブジェクトを示します。 関数が成功しない場合、入力値は変更されません。
pszModuleName
データ型: LPCSTR
修飾子: [in]
ステータス メッセージ モジュール名へのポインター。アプリケーション メッセージの表示文字列を含む DLL を表す null で終わる ASCII 文字列。 モジュール名はステータス メッセージ ビューアーに表示され、ステータス メッセージのソースとしてWindows NT イベント ビューアーされます。
dwID
データ型: DWORD
修飾子: [in]
ステータス メッセージ ID。
dwWin32Error
データ型: DWORD
修飾子: [in]
オプション。 Win32 関数によって返される Win32 エラー コード GetLastError.
pszInsStr1
データ型: LPCSTR
修飾子: [in]
ステータス メッセージ挿入文字列 1 へのポインター、または文字列がない場合は への null
ポインター。
pszInsStr2
データ型: LPCSTR
修飾子: [in]
ステータス メッセージ挿入文字列 2 へのポインター、または文字列がない場合は への null
ポインター。
pszInsStr3
データ型: LPCSTR
修飾子: [in]
ステータス メッセージ挿入文字列 3 へのポインター、または文字列がない場合は への null
ポインター。
pszInsStr4
データ型: LPCSTR
修飾子: [in]
ステータス メッセージ挿入文字列 4 へのポインター、または文字列がない場合は への null
ポインター。
pszInsStr5
データ型: LPCSTR
修飾子: [in]
ステータス メッセージ挿入文字列 5 へのポインター、または文字列がない場合は への null
ポインター。
pszInsStr6
データ型: LPCSTR
修飾子: [in]
ステータス メッセージ挿入文字列 6 へのポインター、または文字列なしの 場合は への null
ポインター。
pszInsStr7
データ型: LPCSTR
修飾子: [in]
ステータス メッセージ挿入文字列 7 へのポインター、または文字列がない場合は への null
ポインター。
pszInsStr8
データ型: LPCSTR
修飾子: [in]
ステータス メッセージ挿入文字列 8 へのポインター、または文字列がない場合は への null
ポインター。
pszInsStr9
データ型: LPCSTR
修飾子: [in]
ステータス メッセージ挿入文字列 9 へのポインター、または文字列がない場合は への null
ポインター。
pszInsStr10
データ型: LPCSTR
修飾子: [in]
ステータス メッセージ挿入文字列 10 へのポインター、または文字列がない場合は への null
ポインター。
戻り値
この関数は、次の表のいずれかの値を返します。
値 | 説明 |
---|---|
SMSSTATMSG_SUCCESS | オブジェクトが正常に作成されました。 |
SMSSTATMSG_OUT_OF_MEMORY | 関数は、オブジェクトを作成するのに十分なメモリを割り当てませんでした。 |
SMSSTATMSG_ERROR_INVALID_MODULE_NAME | 指定された null 呼び出し元、またはパラメーターの長さがSMSSTATMSG_MAX_MODULE_NAME_LENGTH文字を pszModuleName 超えた文字列。 |
STATMSG_ERROR_INVALID_INSSTR | 呼び出し元は、挿入文字列パラメーターの 1 つにSMSSTATMSG_MAX_INSSTR_LENGTH文字数を超える文字列を指定しました。 |
SMSSTATMSG_ERROR_UNKNOWN | オブジェクトの作成中に、関数で不明なエラーが発生しました。 |
注釈
Smscstat.h には、Win32 関数GetProcAddress
を使用して を呼び出CreateSMSStatusMessage
すための次の#defineが含まれています。
#define PROCNAME_CREATESMSSTATUSMESSAGE "CreateSMSStatusMessage"
この関数を呼び出すには、管理者特権が必要です。
ステータス メッセージの報告が必要な正確な時点でのみを呼び出す CreateSMSStatusMessage
必要があります。 このルールの理由は、ステータス メッセージに作成時に設定されるタイムスタンプが含まれていることです。
この関数を呼び出すときは、 を phStatusMessageObject
使用して、他のステータス メッセージレポート関数を呼び出すときに使用するオブジェクトを指定します。 ハンドルに関連付けられているオブジェクトを割り当て解除する唯一の方法は、状態メッセージをConfiguration Manager状態システムに送信する ReportSMSStatusMessage 関数を呼び出す方法です。 このハンドルを Win32 関数やその他の同様の関数 CloseHandle
に渡さないでください。
パラメーターに指定pszModuleName
するモジュール名は、DLL の名前ではなく、Configuration Manager モジュールの名前です。 Configuration Manager サイト サーバーには、モジュール名と DLL 名のマッピングが含まれています。 たとえば、クライアント コンポーネントは、Configuration Manager クライアント モジュール名を使用して状態メッセージを報告します。 サイト サーバーは、Configuration Manager クライアントがファイル Climsgs.dllに対応していることを認識しています。
モジュール名を他の言語にローカライズすることはできません。Configuration Manager管理者は、コンポーネント名に基づくクエリとフィルター 規則を作成するためです。 これにより、管理者は特定のステータス メッセージをすばやく取得し、これらのステータス メッセージを特別な方法で処理するようにConfiguration Managerを構成できます。
この関数の呼び出しで、 パラメーターを dwID
使用してステータス メッセージ ID を指定します。 アプリケーションを準備して状態メッセージConfiguration Manager報告する手順の一環として、すべてのメッセージを定義する .mc ファイルを作成します。 このファイルをコンパイルすると、定義されている各状態メッセージの#defineを含む .h ファイルが生成されます。 #define記号をメッセージ ID として指定する必要があります。 ステータス メッセージ ビューアーまたはWindows NT イベント ビューアーがメッセージを表示すると、指定したメッセージ ID を使用して、関連する DLL 内のメッセージ テキストを検索します。
パラメーターでは dwWin32Error
、Win32 の呼び出しによって返される省略可能な Win32 GetLastError
エラー コードを指定できます。 ステータス メッセージ ビューアーまたはWindows NT イベント ビューアーがステータス メッセージを表示すると、ステータス メッセージの挿入文字列 12 (%12) が次のテキストに置き換えられます。オペレーティング システムによってエラー X: Y が報告されました。ここで X はここで指定したエラー コードで、Y は、そのエラー コードに関連付けられている Win32 エラー テキストです。 たとえば、エラー コード 5 は "アクセスが拒否されました" です。
通常、Win32 関数エラーの直後に状態メッセージを報告するときに、Win32 エラー コードを指定します。 ステータス メッセージに Win32 エラー コードが関連付けられていないことを状態システムに示すには、0 を指定します。この場合、挿入文字列 12 は空白です。
を CreateSMSStatusMessage
呼び出すと、0 から 10 個の null で終わる ASCII 挿入文字列を指定できます。 これらの文字列は、ステータス メッセージ定義のエスケープ シーケンス %1、%2、%3 などに対応します。 ステータス メッセージ ビューアーまたはWindows NT イベント ビューアーがステータス メッセージを表示すると、エスケープ シーケンスは、この関数に指定された値に置き換えられます。
要件
Smscstat.dll。
ランタイム要件
詳細については、「クライアント ランタイム要件のConfiguration Manager」を参照してください。
開発要件
詳細については、「Configuration Managerクライアント開発要件」を参照してください。