Funzione NdisMRegisterMiniportDriver (ndis.h)
Un driver miniport chiama la funzione NdisMRegisterMiniportDriver per registrare MiniportXxx punti di ingresso con NDIS come primo passaggio dell'inizializzazione.
Sintassi
NDIS_STATUS NdisMRegisterMiniportDriver(
[in] PDRIVER_OBJECT DriverObject,
[in] PUNICODE_STRING RegistryPath,
[in, optional] NDIS_HANDLE MiniportDriverContext,
[in] PNDIS_MINIPORT_DRIVER_CHARACTERISTICS MiniportDriverCharacteristics,
[out] PNDIS_HANDLE NdisMiniportDriverHandle
);
Parametri
[in] DriverObject
Puntatore a un oggetto driver opaco ricevuto dal driver miniport nella routine DriverEntry nel parametro Argument1 (vedere DriverEntry dei driver miniport NDIS).
[in] RegistryPath
Puntatore a un percorso opaco del Registro di sistema ricevuto dal driver miniport nella routine DriverEntry nel parametro Argument2.
[in, optional] MiniportDriverContext
Handle per un'area di contesto allocata dal driver in cui il driver mantiene le informazioni sullo stato e sulla configurazione.
[in] MiniportDriverCharacteristics
Puntatore a un oggetto NDIS_MINIPORT_DRIVER_CHARACTERISTICS struttura inizializzata dal chiamante.
[out] NdisMiniportDriverHandle
Puntatore a una variabile handle fornita dal chiamante. NDIS scrive un handle in questa variabile che identifica in modo univoco questo driver. Il driver deve salvare questo handle per l'uso nelle successive chiamate di funzione NdisXxx.
Valore restituito
NdisMRegisterMiniportDriver restituisce uno dei valori di stato seguenti:
Codice restituito | Descrizione |
---|---|
|
NdisMRegisterMiniportDriver registrato correttamente il driver miniport. |
|
Il parametro CharacteristicsLength non è corretto per la versione NDIS specificata nel membro MajorNdisVersion nella struttura in MiniportDriverCharacteristics . |
|
Il MajorNdisVersion o MinorNdisVersion specificato nella struttura delle caratteristiche non è valido. |
|
Una carenza di risorse, possibilmente di memoria, ha impedito a NDIS di registrare il chiamante. |
|
Si tratta di uno stato di errore predefinito, restituito quando nessuno degli errori precedenti ha causato l'esito negativo della registrazione. |
Osservazioni
Un driver NDIS chiama NdisMRegisterMiniportDriver dalla routine DriverEntry. Per altre informazioni, vedere DriverEntry dei driver miniport NDIS.
Ogni driver miniport esporta un set di funzioni di MiniportXxx impostando la struttura delle caratteristiche e chiamando NdisMRegisterMiniportDriver. NDIS copia la struttura delle caratteristiche nella risorsa di archiviazione interna NDIS. Pertanto, dopo la registrazione, un driver non può modificare il relativo MiniportXxx punti di ingresso.
Per registrare l'interfaccia miniport virtuale, i driver intermedi NDIS devono chiamare NdisMRegisterMiniportDriver con il flag NDIS_INTERMEDIATE_DRIVER impostato nella struttura in MiniportDriverCharacteristics . I driver NDIS con un bordo inferiore WDM devono chiamare NdisMRegisterMiniportDriver con il flag NDIS_WDM_DRIVER impostato nella struttura in MiniportDriverCharacteristics .
I driver possono registrarsi come driver miniport combinati e driver intermedi. Per registrare il driver miniport fisico, un driver intermedio miniport chiama NdisMRegisterMiniportDriver con parametri appropriati come per qualsiasi driver miniport. Per registrare nuovamente l'interfaccia miniport virtuale, il driver chiama NdisMRegisterMiniportDriver, ma con il flag NDIS_INTERMEDIATE_DRIVER impostato nel parametro MiniportDriverCharacteristics.
Per consentire ai driver miniport di registrare i servizi facoltativi, NDIS chiama la funzione MiniportSetOptions nel contesto di NdisMRegisterMiniportDriver.
Dopo che un driver chiama NdisMRegisterMiniportDriver, il driver deve essere pronto a essere richiamato nel MiniportInitializeEx funzione specificata nel MiniportDriverCharacteristics parametro ogni volta che DriverEntry restituisce.
Se si verifica un errore in DriverEntry dopo NdisMRegisterMiniportDriver viene restituito correttamente, il driver deve chiamare funzione NdisMDeregisterMiniportDriver prima che DriverEntry restituisca. Se DriverEntry ha esito positivo, il driver deve chiamare NdisMDeregisterMiniportDriver dalla relativa funzione MiniportDriverUnload.
Fabbisogno
Vedere anche
inizializzazione di un driver Miniport
NDIS_MINIPORT_DRIVER_CHARACTERISTICS NdisMDeregisterMiniportDriver