Функция NdisAllocateIoWorkItem (ndis.h)
Драйверы NDIS вызывают функцию NdisAllocateIoWorkItem для выделения рабочего элемента. Дополнительные сведения см. в разделе Рабочие элементы ввода-вывода NDIS.
Синтаксис
NDIS_HANDLE NdisAllocateIoWorkItem(
[in] NDIS_HANDLE NdisObjectHandle
);
Параметры
[in] NdisObjectHandle
Дескриптор объекта NDIS, связанного с объектом устройства или объектом драйвера.
Возвращаемое значение
Если NdisAllocateIoWorkItem успешно выделяет рабочий элемент, он возвращает дескриптор рабочему элементу. В случае сбоя NdisAllocateIoWorkItem возвращает значение NULL.
Комментарии
Драйверы мини-порта NDIS передают NdisAllocateIoWorkItem любой из двух дескрипторов: обработчик адаптера, который NDIS передал функции MiniportInitializeEx , или обработчик драйвера miniport, который NDIS вернул, когда драйвер мини-порта вызывается NdisMRegisterMiniportDriver.
Драйверы фильтров NDIS могут передавать NdisAllocateIoWorkItem обработчику драйвера фильтра, который NDIS возвращал, когда драйвер фильтра с именем NdisFRegisterFilterDriver.
Драйверы мини-порта NDIS и драйверы фильтров также могут передавать NdisAllocateIoWorkItem дескриптор устройства NDIS, возвращенный NDIS, когда драйвер с именем NdisRegisterDeviceEx. NdisAllocateIoWorkItem получает объект устройства или объект драйвера, связанный с дескриптором, и передает объект устройства или объект драйвера в функцию IoAllocateWorkItem .
Драйверы NDIS должны вызывать функцию NdisFreeIoWorkItem , чтобы освободить ресурсы, связанные с рабочим элементом, выделенным NdisAllocateIoWorkItem .
Драйверы могут вызывать NdisFreeIoWorkItem в процедуре обратного вызова, которая передается в NdisQueueIoWorkItem.
Если драйвер мини-порта использовал дескриптор, переданный NDIS в MiniportInitializeEx при вызове NdisAllocateIoWorkItem, рабочий элемент должен быть освобожден до или при вызове функции MiniportHaltEx драйверов.
Если драйвер мини-порта использовал дескриптор, возвращенный NdisMRegisterMiniportDriver при вызове драйвера NdisAllocateIoWorkItem, драйвер должен освободить рабочий элемент перед его выгрузкой.
Как правило, драйвер должен освободить рабочий элемент перед его выгрузкой.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в NDIS 6.0 и более поздних версиях. |
Целевая платформа | Универсальное |
Верхняя часть | ndis.h (включая Ndis.h) |
Библиотека | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Правила соответствия DDI | Init_NdisAllocateIoWorkItem(ndis), Irql_Miscellaneous_Function(ndis) |