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]
狀態訊息模組名稱的指標,這是以 Null 結束的 ASCII 字串,代表包含應用程式訊息顯示字串的 DLL。 模組名稱會顯示在狀態訊息檢視器中,Windows NT 事件檢視器做為狀態訊息的來源。
dwID
資料類型:DWORD
限定詞:[in]
狀態訊息識別碼。
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 | 呼叫端針對其中一個插入字串參數提供了長度超過SMSSTATMSG_MAX_INSSTR_LENGTH字元的字串。 |
SMSSTATMSG_ERROR_UNKNOWN | 函式在嘗試建立物件時發生未知的錯誤。 |
註解
Smscstat.h 包含下列使用 Win32 函 GetProcAddress
式 呼叫 CreateSMSStatusMessage
的#define。
#define PROCNAME_CREATESMSSTATUSMESSAGE "CreateSMSStatusMessage"
需要系統管理員許可權才能呼叫此函式。
只有在需要報告狀態訊息時,才應該呼叫 CreateSMSStatusMessage
。 此規則的原因是狀態訊息包含在建立時設定的時間戳記。
呼叫此函式時,請使用 phStatusMessageObject
提供物件,以供您在呼叫其他狀態訊息報告函式時使用。 請注意,取消配置與控制碼相關聯之物件的唯一方式是呼叫ReportSMSStatusMessage函式,該函式會將狀態訊息提交至Configuration Manager狀態系統。 您不應該將此控制碼傳遞給 Win32 函 CloseHandle
式或任何其他類似的函式。
您為 pszModuleName
參數提供的模組名稱不是 DLL 的名稱,而是Configuration Manager模組的名稱。 Configuration Manager月臺伺服器包含模組名稱與 DLL 名稱的對應。 例如,用戶端元件會使用Configuration Manager用戶端模組名稱來報告狀態訊息。 月臺伺服器知道Configuration Manager用戶端會對應至檔案Climsgs.dll。
模組名稱無法當地語系化為其他語言,因為Configuration Manager系統管理員會根據元件名稱建立查詢和篩選規則。 這可協助系統管理員快速擷取您的特定狀態訊息,並設定Configuration Manager以特殊方式處理這些狀態訊息。
在您對此函式的呼叫中 dwID
,使用 參數來提供狀態訊息識別碼。 在準備應用程式以報告Configuration Manager狀態訊息的程式中,您會建立定義所有訊息的 .mc 檔案。 編譯此檔案會產生 .h 檔案,其中包含每個已定義狀態訊息的#define。 您應該提供#define符號作為訊息識別碼。 當狀態訊息檢視器或Windows NT 事件檢視器顯示您的訊息時,它會使用您提供的訊息識別碼來查閱相關 DLL 中的郵件內文。
在 參數中 dwWin32Error
,您可以提供呼叫 Win32 所傳回的選擇性 Win32 GetLastError
錯誤碼。 當狀態訊息檢視器或Windows NT 事件檢視器顯示狀態訊息時,它會使用下列文字取代狀態訊息中的插入字串 12 (%12) :作業系統回報錯誤 X: Y。其中 X 是這裡提供的錯誤碼,而 Y 是與該錯誤碼相關聯的 Win32 錯誤文字。 例如,錯誤碼 5 是「拒絕存取」。
當報告 Win32 函式失敗之後的狀態訊息時,您通常會提供 Win32 錯誤碼。 提供 0 以向狀態系統指出沒有 Win32 錯誤碼與狀態訊息相關聯,在此情況下,插入字串 12 是空白的。
您的 呼叫 CreateSMSStatusMessage
可以提供零到 10 個以 Null 結尾的 ASCII 插入字串。 這些字串會對應至狀態訊息定義中的 %1、%2、%3 等逸出序列。 當狀態訊息檢視器或Windows NT 事件檢視器顯示狀態訊息時,它會以提供給此函式的值取代逸出序列。
需求
Smscstat.dll。
執行時間需求
如需詳細資訊,請參閱Configuration Manager用戶端執行時間需求。
開發需求
如需詳細資訊,請參閱Configuration Manager用戶端開發需求。