Inizializzazione di un provider di divisione di Header-Data
Per supportare la suddivisione dei dati di intestazione, un driver miniport deve registrarsi come driver NDIS 6.1 o versione successiva. Il file di origini per il driver miniport deve specificare DNDIS61_MINIPORT=1 anziché DNDIS60_MINIPORT=1. Il driver miniport deve specificare anche NDIS 6.1 o una versione successiva nella struttura NDIS_MINIPORT_DRIVER_CHARACTERISTICS .
Per registrare gli attributi di suddivisione dei dati di intestazione, un driver miniport NDIS 6.1 chiama la funzione NdisMSetMiniportAttributes dalla funzione MiniportInitializeEx e passa la struttura di NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES inizializzata NdisMSetMiniportAttributes.
La struttura NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES contiene le informazioni seguenti:
Il membro HDSplitAttributes di NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES contiene un puntatore a una struttura NDIS_HD_SPLIT_ATTRIBUTES che specifica le funzionalità di divisione dei dati di intestazione fornite da una scheda miniport.
Il membro HardwareCapabilities di NDIS_HD_SPLIT_ATTRIBUTES contiene le funzionalità di divisione dei dati di intestazione supportate dall'adattatore miniport. Queste funzionalità possono includere funzionalità attualmente disabilitate dalle impostazioni del file INF o tramite la pagina Proprietà avanzate .
Il membro CurrentCapabilities di NDIS_HD_SPLIT_ATTRIBUTES contiene le funzionalità di divisione dei dati di intestazione correnti supportate dall'adattatore miniport. Se la suddivisione dei dati di intestazione è abilitata tramite la parola chiave *HeaderDataSplit standardizzata INF, il driver miniport usa gli stessi flag del membro HardwareCapabilities per indicare la configurazione di suddivisione dei dati di intestazione corrente. Per altre informazioni su *HeaderDataSplit, vedere Parole chiave INF standardizzate per Header-Data Split.
Il membro HDSplitFlags di NDIS_HD_SPLIT_ATTRIBUTES contiene flag di configurazione di suddivisione dei dati di intestazione. Il driver miniport deve impostare questo membro su zero prima di chiamare NdisMSetMiniportAttributes. NDIS imposta questo membro con un OR bit per bit dei flag di configurazione. Dopo che NdisMSetMiniportAttributes restituisce correttamente, il driver miniport deve controllare le impostazioni del flag in HDSplitFlags e configurare di conseguenza l'hardware.
NDIS usa il flag di NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT per abilitare la suddivisione dei dati di intestazione per l'adattatore miniport. NDIS non imposta NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT se il driver miniport non ha impostato il flag di NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT nel membro CurrentCapabilities della struttura NDIS_HD_SPLIT_ATTRIBUTES . Il driver miniport deve abilitare la suddivisione dei dati di intestazione nella scheda di interfaccia di rete se NDIS imposta il flag di NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT.
Il driver miniport deve impostare il membro BackfillSize della struttura NDIS_HD_SPLIT_ATTRIBUTES su zero prima di chiamare NdisMSetMiniportAttributes. NDIS imposta il membro BackfillSize se il driver miniport deve pre-allocare l'archiviazione di riempimento nel buffer di dati dei fotogrammi di divisione. Dopo aver restituito correttamente NdisMSetMiniportAttributes , il driver miniport deve usare il valore BackfillSize specificato e pre-allocato dei buffer di dati. Per altre informazioni sulle dimensioni del riempimento del buffer dati, vedere Allocazione del riempimento backfill per il buffer dati.
Il driver miniport deve impostare il membro MaxHeaderSize della struttura NDIS_HD_SPLIT_ATTRIBUTES su zero prima di chiamare NdisMSetMiniportAttributes. NDIS imposta questo membro sulla dimensione massima consentita per il buffer di intestazione dei fotogrammi di divisione. Dopo aver restituito correttamente NdisMSetMiniportAttributes , il driver miniport deve usare il valore MaxHeaderSize specificato da NDIS. Per altre informazioni sulle dimensioni massime dell'intestazione, vedere Allocazione del buffer di intestazione.