Delen via


Toewijzing van gedeelde geheugenresources

Als u gedeelde geheugenbronnen wilt toewijzen voor een VM-wachtrij, roept een minipoortstuurprogramma de functie NdisAllocateSharedMemory aan . Het minipoortstuurprogramma wijst bijvoorbeeld gedeeld geheugen toe wanneer het de OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE OID ontvangt. Daarnaast kan een minipoortstuurprogramma gedeeld geheugen toewijzen voor de standaardwachtrij tijdens de initialisatie van de netwerkadapter. Zie Een VM-wachtrij toewijzenvoor meer informatie over het toewijzen van wachtrijen.

Het minipoortstuurprogramma kan meer geheugen toewijzen voor de wachtrij totdat de wachtrij vrij is. Zie Een VM-wachtrij vrijmaken voor meer informatie over het vrijmaken van een wachtrij.

De NDIS_SHARED_MEMORY_PARAMETERS-structuur geeft de parameters voor gedeeld geheugen op voor een aanvraag voor gedeelde geheugentoewijzing. Miniportstuurprogramma's geven deze structuur door aan de functie NdisAllocateSharedMemory . NDIS geeft deze structuur door aan de functie NetAllocateSharedMemory (dat wil gezegd het ALLOCATE_SHARED_MEMORY_HANDLER toegangspunt).

Wanneer een minipoortstuurprogramma gedeeld geheugen toewijst, geeft dit het volgende op:

  • Wachtrij-identificatie.

  • Lengte van gedeeld geheugen.

  • Hoe het gedeelde geheugen wordt gebruikt. Het minipoortstuurprogramma geeft bijvoorbeeld NdisSharedMemoryUsageReceive op als het gedeelde geheugen moet worden gebruikt voor ontvangstbuffers.

Als de vlag NDIS_SHARED_MEM_PARAMETERS_CONTIGOUS niet is ingesteld in het lid Vlaggen, kan gedeeld geheugen worden opgegeven in een spreidingsverzamelingslijst die zich in niet-aaneengesloten geheugen bevindt.

De NDIS_SHARED_MEMORY_USAGE opsomming geeft aan hoe gedeeld geheugen wordt gebruikt. De opsomming NDIS_SHARED_MEMORY_USAGE wordt gebruikt in de NDIS_SHARED_MEMORY_PARAMETERS - en NDIS_SCATTER_GATHER_LIST_PARAMETERS structuren. Zie voor informatie over parameters voor gedeeld geheugen in VMQ-gegevensbuffers de Gedeeld geheugen in ontvangstbuffers.

De functie NdisAllocateSharedMemory biedt het volgende voor de aanroeper:

  • Virtueel adres van het toegewezen geheugen.

  • Spreidingsverzamelaarslijst.

  • Gedeelde geheugengreep - voor ontvangstindicaties.

  • Toewijzingsgreep: gebruikt om het geheugen later te identificeren.

Miniportstuurprogramma's roepen de NdisFreeSharedMemory- functie aan om gedeeld geheugen vrij te maken voor een wachtrij. Als het minipoortstuurprogramma het gedeelde geheugen voor een niet-standaardwachtrij heeft toegewezen, maakt het het gedeelde geheugen vrij in de context van de OID_RECEIVE_FILTER_FREE_QUEUE OID, terwijl het tegelijkertijd de wachtrij vrijmaakt. Miniportstuurprogramma's maken gedeeld geheugen vrij die ze hebben toegewezen voor de standaardwachtrij in de context van de MiniportHaltEx functie.