HW_PASSIVE_INITIALIZE_ROUTINE回呼函式 (storport.h)
當目前的 IRQL 位於PASSIVE_LEVEL時,HwStorInitialize 例程之後,就會呼叫 HwStorPassiveInitializeRoutine 回呼例程。 HwStorPassiveInitializeRoutine 回呼是藉由呼叫 StorPortEnablePassiveInitialization 例程來設定。 在 HwStorPassiveInitializeRoutine 回呼中, (DPC) 初始化迷你埠的延後過程調用。
語法
HW_PASSIVE_INITIALIZE_ROUTINE HwPassiveInitializeRoutine;
BOOLEAN HwPassiveInitializeRoutine(
PVOID DeviceExtension
)
{...}
參數
DeviceExtension
傳回值
如果迷你埠已成功初始化 DPC 的處理, 則 HwStorPassiveInitializeRoutine 例程會傳回 TRUE ,如果初始化進程失敗,則傳回 FALSE 。
備註
HwStorPassiveInitializeRoutine 例程應該初始化迷你埠驅動程式將使用的任何 DPC。 埠驅動程式會在PASSIVE_LEVEL呼叫 HwStorPassiveInitializeRoutine ,而不會保留任何微調鎖定。 呼叫此例程時會啟用中斷。
名稱 HwStorPassiveInitializeRoutine 只是佔位符。 此回呼例程的實際原型定義於 Storport.h 中,如下所示:
typedef
BOOLEAN
(*PHW_PASSIVE_INITIALIZE_ROUTINE) (
_In_ PVOID DeviceExtension
);
埠驅動程式會在 PASSIVE IRQL 呼叫 HwStorPassiveInitializeRoutine 例程,而不需要取得任何微調鎖定。
範例
若要定義 HwStorPassiveInitializeRoutine 回呼函式,您必須先提供函式宣告,以識別您要定義的回呼函式類型。 Windows 提供一組驅動程式的回呼函式類型。 使用回呼函式類型宣告函式有助於 驅動程式的程式代碼分析、 靜態驅動程式驗證器 (SDV) ,以及其他驗證工具會尋找錯誤,而且這是撰寫 Windows 操作系統驅動程式的需求。
例如,若要定義名為 MyHwPassiveInitialize 的 HwStorPassiveInitializeRoutine 回呼例程,請使用 HW_PASSIVE_INITIALIZE_ROUTINE 類型,如下列程式代碼範例所示:
HW_PASSIVE_INITIALIZE_ROUTINE MyHwPassiveInitialize;
然後,實作回呼例程,如下所示:
_Use_decl_annotations_
BOOLEAN
MyHwPassiveInitialize (
_In_ PVOID DeviceExtension
);
{
...
}
HW_PASSIVE_INITIALIZE_ROUTINE函式類型定義於 Storport.h 頭檔中。 若要在執行程式代碼分析工具時更精確地識別錯誤,請務必將 Use_decl_annotations 註釋新增至函式定義。 Use_decl_annotations註釋可確保使用頭檔中套用至HW_PASSIVE_INITIALIZE_ROUTINE函式類型的批註。 如需函式宣告需求的詳細資訊,請參閱 使用 Storport 驅動程式的函式角色類型宣告函式。 如需 Use_decl_annotations的詳細資訊,請參閱 標註函式行為。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | storport.h (包含 Storport.h) |
IRQL | PASSIVE_LEVEL (请参阅一节。) |