Freigeben über


NdisAllocateIoWorkItem-Funktion (ndis.h)

NDIS-Treiber rufen die NdisAllocateIoWorkItem-Funktion auf, um ein Arbeitselement zuzuordnen. Weitere Informationen finden Sie unter NDIS-E/A-Arbeitselemente.

Syntax

NDIS_HANDLE NdisAllocateIoWorkItem(
  [in] NDIS_HANDLE NdisObjectHandle
);

Parameter

[in] NdisObjectHandle

Das Handle eines NDIS-Objekts, das einem Geräte- oder Treiberobjekt zugeordnet ist.

Rückgabewert

Wenn NdisAllocateIoWorkItem erfolgreich ein Arbeitselement zuordnet, wird ein Handle an das Arbeitselement zurückgegeben. Wenn ein Fehler auftritt, gibt NdisAllocateIoWorkItemNULL zurück.

Hinweise

NDIS-Miniporttreiber übergeben NdisAllocateIoWorkItem eines von zwei Handles: das Adapterhandle, das NDIS an die MiniportInitializeEx-Funktion übergeben hat, oder das Miniporttreiberhandle, das NDIS zurückgegeben hat, wenn der Miniporttreiber aufgerufen hat. NdisMRegisterMiniportDriver.

NDIS-Filtertreiber können NdisAllocateIoWorkItem das Filtertreiberhandle übergeben, das NDIS zurückgegeben hat, als der Filtertreiber NdisFRegisterFilterDriver aufgerufen hat.

NDIS-Miniporttreiber und Filtertreiber können auch NdisAllocateIoWorkItem das NDIS-Gerätehandle übergeben, das NDIS zurückgegeben hat, als der Treiber NdisRegisterDeviceEx aufgerufen hat. NdisAllocateIoWorkItem ruft das Dem Handle zugeordnete Geräteobjekt oder Treiberobjekt ab und übergibt das Geräteobjekt oder treiberobjekt an die IoAllocateWorkItem-Funktion .

Hinweis Protokolltreiber können NdisAllocateIoWorkItem nicht verwenden, da NDIS keine Protokolltreiber mit Geräteobjekten oder Treiberobjekten verknüpft.
 
NDIS-Treiber rufen die NdisQueueIoWorkItem-Funktion auf, um Arbeitselemente in die Warteschlange zu stellen. Nachdem ein Treiber NdisQueueIoWorkItem aufgerufen hat, ruft NDIS die vom Treiber angegebene Rückruffunktion unter IRQL = PASSIVE_LEVEL auf. Dies kann die Systemleistung verbessern, indem die aktuelle Funktion sofort beendet wird und der Treiber später mit einem niedrigeren IRQL arbeiten kann.

NDIS-Treiber müssen die NdisFreeIoWorkItem-Funktion aufrufen, um die Ressourcen freizugeben, die einem Arbeitselement zugeordnet sind, das NdisAllocateIoWorkItem zugeordnet hat.

Treiber können NdisFreeIoWorkItem in der Rückrufroutine aufrufen, die an NdisQueueIoWorkItem übergeben wird.

Wenn ein Miniporttreiber das Handle verwendet hat, das NDIS beim Aufrufen von NdisAllocateIoWorkItem an MiniportInitializeEx übergeben hat, muss das Arbeitselement vor oder im Aufruf der MiniportHaltEx-Funktion des Treibers freigegeben werden.

Wenn ein Miniporttreiber das Handle verwendet hat, das NdisMRegisterMiniportDriver zurückgegeben hat, wenn der Treiber NdisAllocateIoWorkItem aufgerufen hat, muss der Treiber das Arbeitselement freigeben, bevor der Treiber entladen wird.

Im Allgemeinen muss ein Treiber das Arbeitselement freigeben, bevor der Treiber entladen wird.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Zielplattform Universell
Header ndis.h (include Ndis.h)
Bibliothek Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln Init_NdisAllocateIoWorkItem(ndis), Irql_Miscellaneous_Function(ndis)

Weitere Informationen

IoAllocateWorkItem

MiniportHaltEx

MiniportInitializeEx

NDIS-E/A-Arbeitselemente

NdisFRegisterFilterDriver

NdisFreeIoWorkItem

NdisMRegisterMiniportDriver

NdisQueueIoWorkItem

NdisRegisterDeviceEx