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值時,才會傳回 。 這是選擇性參數。
傳回值
傳回碼 | Description |
---|---|
|
此函式不會在作用中的操作系統上實作。 |
|
傳入了無效的參數。 |
|
呼叫是在 IRQL > DISPATCH_LEVEL 進行。 |
|
系統資源不足,無法完成要求。 |
|
例如,指定了較目前的) STOR_LOG_EVENT_DETAILS 結構版本,不支援的 (。 傳回此專案時,LogDetails->InterfaceRevision 會設定為最新支援的版本。 |
|
傳遞至函式的緩衝區太大。 傳回此值時,MaximumSize 會設定為迷你埠傾印數據和字串的合併大小上限。 |
|
記錄作業已順利完成。 |
備註
若要瞭解如何使用自定義錯誤碼來獲得最佳優點,請參閱 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 位值。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | storport.h (包含 Storport.h) |
DDI 合規性規則 | StorPortIrql (storport) |