Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il punto di ingresso necessario di un driver intermedio deve essere denominato in modo esplicito DriverEntry in modo che il caricatore possa identificarlo correttamente. Tutte le altre funzioni driver esportate, descritte in questa sezione come miniportXxx e ProtocolXxx, possono avere qualsiasi nome specificato dal fornitore perché vengono passati come indirizzi a NDIS.
In un driver intermedio, DriverEntry deve essere almeno:
Chiamare NdisMRegisterMiniportDriver e quindi salvare l'handle che viene restituito nel parametro NdisMiniportDriverHandle.
Chiamare NdisRegisterProtocolDriver per registrare le funzioni ProtocolXxx del driver se il driver si associa successivamente a un driver NDIS sottostante.
Chiamare NdisIMAssociateMiniport per informare NDIS riguardo all'associazione tra la parte superiore del miniport del driver e la parte inferiore del protocollo.
Un driver intermedio deve registrare un gestore di scaricamento MiniportDriverUnload. Questo gestore di scaricamento viene chiamato quando il sistema scarica il driver intermedio. Se DriverEntry ha esito negativo, questo handler di scaricamento non viene chiamato; invece, il driver viene semplicemente scaricato. Per ulteriori informazioni sul gestore di scaricamento, vedere Disinstallare un driver intermedio.
Il gestore di scaricamento deve chiamare NdisDeregisterProtocolDriver per annullare la registrazione della parte del protocollo del driver intermedio. Il gestore di scaricamento deve eseguire anche tutte le operazioni di pulizia necessarie, ad esempio la riallocazione delle risorse usate dalla parte del protocollo del driver.
Si noti che un gestore di scaricamento differisce da una funzione MiniportHaltEx: il gestore di scaricamento ha un ambito più globale e l'ambito della funzione MiniportHaltEx è limitato a una particolare scheda miniport. Il driver intermedio deve pulire le informazioni sullo stato e riallocare le risorse quando ogni driver miniport sottostante a cui è associato viene interrotto. Per informazioni sulla gestione dell'operazione di interruzione per miniport virtuali, vedere Interrompere un miniport virtuale.
ProtocolUninstall è un gestore di scaricamento facoltativo. Registrare un punto di ingresso per questa funzione nella struttura ProtocolCharacteristics che viene passata a NdisRegisterProtocolDriver. NDIS chiama ProtocolUninstall in risposta a una richiesta utente di disinstallare un driver intermedio. NDIS chiama ProtocolUnbindAdapterEx una volta per ogni adattatore associato, e poi NDIS chiama ProtocolUninstall. Questo gestore viene chiamato prima che il sistema scarichi effettivamente il driver. Questo intervallo consente di rilasciare qualsiasi oggetto dispositivo o altre risorse che altrimenti impediscono al sistema di chiamare il gestore di scaricamento registrato con NdisMRegisterMiniportDriver e scaricare il driver.
DriverEntry può inizializzare gli spin lock per proteggere le risorse condivise a livello globale allocate dal driver intermedio, ad esempio variabili di stato, strutture e aree di memoria. Il driver usa queste risorse per tenere traccia delle connessioni e per tenere traccia degli invii in corso o delle code allocate dal driver.
Se DriverEntry non riesce ad allocare risorse necessarie al driver per eseguire operazioni di I/O di rete, deve rilasciare eventuali risorse allocate in precedenza e restituire uno stato di errore appropriato.
Gli argomenti seguenti descrivono ulteriormente come registrare i driver intermedi:
Registrarsi come driver intermedio NDIS
Registrazione di un driver intermedio come driver miniport
Registrazione di un Driver Intermedio come Driver di Protocollo