共用方式為


StorPortLogSystemEvent 函式 (storport.h)

StorPortLogSystemEvent 例程可讓迷你埠驅動程式完整存取 Windows 核心事件設施的功能,讓迷你埠驅動程式能夠建立事件記錄檔專案,這些記錄檔專案對於針對記憶體問題進行疑難解答非常實用。 它提供更好的替代現有迷你連接埠驅動程式事件記錄函式,StorPortLogError

語法

ULONG StorPortLogSystemEvent(
  [in]      PVOID                   HwDeviceExtension,
  [in, out] PSTOR_LOG_EVENT_DETAILS LogDetails,
  [in, out] PULONG                  MaximumSize
);

參數

[in] HwDeviceExtension

硬體裝置延伸模組的指標。 這是埠驅動程式代表迷你埠驅動程式配置和初始化的每個 HBA 儲存區域。 迷你埠驅動程式通常會在此延伸模組中儲存 HBA 特定資訊,例如 HBA 的狀態和 HBA 的對應存取範圍。 迷你埠驅動程式呼叫 StorPortInitialize之後,即可立即使用此區域。 埠驅動程式會在移除裝置時釋放此記憶體。

[in, out] LogDetails

STOR_LOG_EVENT_DETAILS 結構,其中包含要出現在系統事件記錄檔項目中的資訊。

[in, out] MaximumSize

要接收迷你埠傾印數據和字串大小上限的變數。 只有在函式失敗並傳回STOR_STATUS_INVALID_BUFFER_SIZE值時,才會傳回 。 這個參數是選擇性的。

傳回值

傳回碼 描述
STOR_STATUS_NOT_IMPLEMENTED
此函式不會在作用中的作系統上實作。
STOR_STATUS_INVALID_PARAMETER
傳入無效的參數。
STOR_STATUS_INVALID_IRQL
呼叫是在 IRQL > DISPATCH_LEVEL 進行。
STOR_STATUS_INSUFFICIENT_RESOURCES
系統資源不足,無法完成要求。
STOR_STATUS_UNSUPPORTED_VERSION:
已指定不支援的 STOR_LOG_EVENT_DETAILS 結構版本(例如,較目前的版本)。 傳回此專案時,LogDetails->InterfaceRevision 會設定為最新的支援版本。
STOR_STATUS_INVALID_BUFFER_SIZE
傳遞至函式的緩衝區太大。 傳回此值時,MaximumSize 會設定為迷你埠傾印數據和字串的最大合併大小。
STOR_STATUS_SUCCESS
記錄作業已順利完成。

言論

若要瞭解如何使用自訂錯誤碼來獲得最佳優勢,請參閱 Storport 錯誤記錄檔延伸模組。 StorPortLogSystemEvent 例程必須在 IRQL <= DISPATCH_LEVEL呼叫。 如果您傳入的STOR_LOG_EVENT_DETAILS版本比此組建支援的版本還新,此函式會將 InterfaceRevision 字段變更為最新的支援版本,並傳回STOR_STATUS_UNSUPPORTED_VERSION。 STOR_LOG_EVENT_DETAILS的 InterfaceRevision 欄位是 32 位值。 不過,只有三個最重要的位元組會用於驗證。 低位元節會保留,以區分特定版本的相容、次要變化。 例如,修訂0x00000101結構與實作介面0x00000100修訂的 Storport 相容,不過可能會遺失一些次要的非關鍵功能。 如果您指定傾印數據與超過允許事件記錄專案大小上限的合併大小,則 MaximumSize 所指向的整數會設定為迷你埠傾印數據和字串的最大允許大小,並傳回STOR_INVALID_BUFFER_SIZE。 雖然此函式接受路徑、目標和 LUN 位址規範的 ULONG 值,但是這些值會被截斷為 UCHAR 值,因為 Storport 內部僅支援這些規範的 8 位值。

要求

要求 價值
目標平臺 普遍
標頭 storport.h (包括 Storport.h)
DDI 合規性規則 StorPortIrql(storport)

另請參閱

StorPortLogError