DriverEntry 的必要責任
DriverEntry常式的必要、已排序責任如下:
提供驅動程式標準常式的進入點。
驅動程式會將許多標準常式的進入點儲存在驅動程式物件或驅動程式擴充功能中。 這類進入點包括驅動程式的 AddDevice 常式、分派常式、 StartIo 常式和 Unload 常式。 例如,驅動程式會設定 其 AddDevice、 DispatchPnP和 DispatchPower 常式的進入點,其語句如下 (Xxx 是廠商提供的前置詞的預留位置,可識別驅動程式) :
: DriverObject->DriverExtension->AddDevice = XxxAddDevice; DriverObject->MajorFunction[IRP_MJ_PNP] = XxxDispatchPnp; DriverObject->MajorFunction[IRP_MJ_POWER] = XxxDispatchPower; :
呼叫系統支援常式會指定其他標準常式,例如 ISR 或 IoCompletion 常式。 如需詳細資訊,請參閱個別 標準驅動程式常式的描述。
建立和/或初始化驅動程式所使用的各種全驅動程式物件、類型或資源。 請注意,大部分的標準常式會根據每個裝置使用物件,因此驅動程式應該在其 AddDevice 常式中或接收 IRP_MN_START_DEVICE 要求之後設定這類物件。
如果驅動程式具有裝置專用線程,或等候任何核心定義的發送器物件, DriverEntry 常式可能會初始化 核心發送器物件。 (視驅動程式如何使用物件 () 而定,它可能會改為在其 AddDevice 常式中或接收 IRP_MN_START_DEVICE 要求之後執行這項工作。)
釋放它配置且不再需要的任何記憶體。
傳回 NTSTATUS,指出驅動程式是否已成功載入,並可接受和處理來自 PnP 管理員的要求,以設定、新增和啟動其裝置。 (請參閱 DriverEntry 傳回值。)