次の方法で共有


CreateSMSStatusMessage 関数

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クライアント開発要件」を参照してください。

関連項目

ステータス メッセージ関数のSMSCSTAT.DLL