Funzione NdisMRegisterMiniportDriver (ndis.h)
Un driver miniport chiama la funzione NdisMRegisterMiniportDriver per registrare i punti di ingresso MiniportXxx 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 che il driver miniport ha ricevuto nella routine DriverEntry nel parametro Argument1 (vedere DriverEntry of NDIS Miniport Drivers).
[in] RegistryPath
Puntatore a un percorso opaco del Registro di sistema ricevuto dal driver miniport nella routine DriverEntry al parametro Argument2 .
[in, optional] MiniportDriverContext
Handle in un'area di contesto allocata dal driver in cui il driver gestisce 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 chiamate di funzione NdisXxx successive.
Valore restituito
NdisMRegisterMiniportDriver restituisce uno dei valori di stato seguenti:
Codice restituito | Descrizione |
---|---|
|
NdisMRegisterMiniportDriver ha registrato correttamente il driver miniport. |
|
Il parametro CharacteristicsLength non è corretto per la versione NDIS specificata nel membro MajorNdisVersion nella struttura in MiniportDriverCharacteristics . |
|
La proprietà MajorNdisVersion o MinorNdisVersion specificata nella struttura delle caratteristiche non è valida. |
|
Una carenza di risorse, possibilmente 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. |
Commenti
Un driver NDIS chiama NdisMRegisterMiniportDriver dalla routine DriverEntry . Per altre informazioni, vedere DriverEntry of NDIS Miniport Driver.
Ogni driver miniport esporta un set di funzioni MiniportXxx standard configurando la struttura delle caratteristiche e chiamando NdisMRegisterMiniportDriver. NDIS copia la struttura delle caratteristiche nell'archiviazione interna di NDIS. Pertanto, dopo aver registrato, un driver non può modificare i punti di ingresso MiniportXxx .
Per registrare l'interfaccia miniport virtuale, un driver intermedio NDIS deve 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 registrare come driver miniport combinato e driver intermedio. 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 nuovamente NdisMRegisterMiniportDriver , ma con il flag NDIS_INTERMEDIATE_DRIVER impostato nel parametro MiniportDriverCharacteristics .
Per abilitare i driver miniport per registrare i servizi facoltativi, NDIS chiama la funzione MiniportSetOptions nel contesto di NdisMRegisterMiniportDriver.
Dopo che un driver chiama NdisMRegisterMiniportDriver, il driver deve essere richiamato nella funzione MiniportInitializeEx specificata nel parametro MiniportDriverCharacteristics qualsiasi volta che DriverEntry restituisce.
Se si verifica un errore in DriverEntry dopo che NdisMRegisterMiniportDriver restituisce correttamente, il driver deve chiamare il Funzione NdisMDeregisterMiniportDriver prima che DriverEntry restituisca. Se DriverEntry ha esito positivo, il driver deve chiamare NdisMDeregisterMiniportDriver dalla relativa funzione MiniportDriverUnload .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato in NDIS 6.0 e versioni successive. |
Piattaforma di destinazione | Universale |
Intestazione | ndis.h (includere Ndis.h) |
Libreria | Ndis.lib |
IRQL | PASSIVE_LEVEL |
Regole di conformità DDI | Irql_Miniport_Driver_Function(ndis) |
Vedi anche
Inizializzazione di un driver Miniport
NDIS_MINIPORT_DRIVER_CHARACTERISTICS NdisMDeregisterMiniportDriver