NdisAllocateIoWorkItem 函式 (ndis.h)

NDIS 驅動程式會呼叫 NdisAllocateIoWorkItem 函式來配置工作專案。 如需詳細資訊,請參閱 NDIS I/O 工作專案

語法

NDIS_HANDLE NdisAllocateIoWorkItem(
  [in] NDIS_HANDLE NdisObjectHandle
);

參數

[in] NdisObjectHandle

與裝置物件或驅動程式對象相關聯的 NDIS 物件的句柄。

傳回值

如果 NdisAllocateIoWorkItem 成功配置工作專案,它會傳回工作專案的句柄。 如果失敗, NdisAllocateIoWorkItem 會傳回 NULL

備註

NDIS 迷你埠驅動程式會傳遞 NdisAllocateIoWorkItem 這兩個句柄之一:NDIS 傳遞至 MiniportInitializeEx 函式的適配卡句柄,或 NDIS 在迷你埠驅動程式呼叫時傳回的迷你埠驅動程式句柄 NdisMRegisterMiniportDriver

NDIS 篩選驅動程式可以傳遞 NdisAllocateIoWorkItem 篩選驅動程式句柄,當篩選驅動程式呼叫 NdisFRegisterFilterDriver 時傳回的 NDIS。

NDIS 迷你埠驅動程式和篩選驅動程式也可以傳遞 NdisAllocateIoWorkItem NDIS 裝置句柄,當驅動程式呼叫 NdisRegisterDeviceEx 時傳回的 NDIS 裝置句柄。 NdisAllocateIoWorkItem 會取得與句柄相關聯的裝置對象或驅動程序物件,並將裝置對象或驅動程式對象傳遞至 IoAllocateWorkItem 函式。

注意 通訊協定驅動程式無法使用 NdisAllocateIoWorkItem ,因為 NDIS 不會將通訊協定驅動程式與裝置物件或驅動程式對象產生關聯。
 
NDIS 驅動程式會呼叫 NdisQueueIoWorkItem 函式來將工作專案排入佇列。 在驅動程式呼叫 NdisQueueIoWorkItem 之後,NDIS 會在 IRQL = PASSIVE_LEVEL 呼叫驅動程式指定的回呼函式。 這可藉由讓目前的函式立即結束,而驅動程式稍後可在較低的 IRQL 上執行工作,以改善系統效能。

NDIS 驅動程式必須呼叫 NdisFreeIoWorkItem 函式,以釋放 與 NdisAllocateIoWorkItem 配置的工作專案相關聯的資源。

驅動程式可以在傳遞至 NdisQueueIoWorkItem 的回呼例程中呼叫 NdisFreeIoWorkItem

如果迷你埠驅動程式在呼叫 NdisAllocateIoWorkItem 時使用了傳遞至 MiniportInitializeEx 的 NDIS 句柄,則必須在驅動程式 MiniportHaltEx 函式的呼叫中釋放工作專案。

如果迷你埠驅動程式使用 NdisMRegisterMiniportDriver 在驅動程式呼叫 NdisAllocateIoWorkItem 時傳回的句柄,驅動程式必須在驅動程式卸除之前釋出工作專案。

一般而言,驅動程式必須先釋放工作專案,才能卸除驅動程式。

規格需求

需求
最低支援的用戶端 NDIS 6.0 和更新版本支援。
目標平台 Universal
標頭 ndis.h (包含 Ndis.h)
程式庫 Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 合規性規則 Init_NdisAllocateIoWorkItem (ndis) Irql_Miscellaneous_Function (ndis)

另請參閱

IoAllocateWorkItem

MiniportHaltEx

MiniportInitializeEx

NDIS I/O 工作專案

NdisFRegisterFilterDriver

NdisFreeIoWorkItem

NdisMRegisterMiniportDriver

NdisQueueIoWorkItem

NdisRegisterDeviceEx