Condividi tramite


DRIVER_PROXY_ENDPOINT_FUNCTION funzione di callback (wdm.h)

Il callback DRIVER_PROXY_ENDPOINT_FUNCTION definisce la firma della funzione per una funzione endpoint scambiabile a caldo nel sistema DriverProxy. Si tratta di un tipo di puntatore a funzione generico che rappresenta qualsiasi funzione driver che può essere resa modificabile tramite il framework driver Hot-Swap.

Sintassi

DRIVER_PROXY_ENDPOINT_FUNCTION DriverProxyEndpointFunction;

VOID DriverProxyEndpointFunction()
{...}

Valore restituito

None

Osservazioni:

Le funzioni endpoint sono funzioni implementate dal driver che possono essere sostituite in fase di esecuzione senza scaricare il driver. Il sistema DriverProxy crea funzioni wrapper che reindirizzano le chiamate all'implementazione corrente di ogni funzione endpoint, abilitando la funzionalità di scambio frequente.

Questo tipo di callback funge da puntatore a funzione generico per il sistema DriverProxy. In pratica, le funzioni endpoint avranno firme diverse a seconda dello scopo specifico, ma vengono tutti considerati come puntatori DRIVER_PROXY_ENDPOINT_FUNCTION all'interno dell'infrastruttura DriverProxy.

In Driver Hot-Swap V2 le funzioni endpoint vengono individuate automaticamente durante il processo di compilazione tramite l'analisi del compilatore e del linker. Il compilatore identifica le funzioni che devono essere scambiabili a caldo e inserisce informazioni su di esse nella .shsept sezione del file binario.

Caratteristiche principali delle funzioni endpoint:

  • Possono essere sostituiti in fase di esecuzione tramite il sistema DriverProxy
  • Si accede tramite le funzioni wrapper restituite da IoGetDriverProxyWrapperFromEndpoint
  • Devono essere associati a un'estensione DriverProxy creata da IoCreateDriverProxyExtension
  • La sostituzione è coordinata tramite l'infrastruttura DriverProxy per garantire la thread safety

I requisiti irQL effettivi per le funzioni endpoint dipendono dalla funzione specifica implementata. I driver devono progettare le funzioni endpoint in base ai vincoli IRQL dell'utilizzo previsto.

Requisiti

Requisito Value
Piattaforma di destinazione Universale
Header wdm.h
IRQL Variable

Vedere anche

IoGetDriverProxyWrapperFromEndpoint

IofGetDriverProxyWrapperFromEndpoint

IoCreateDriverProxyExtension

DRIVER_PROXY_ENDPOINT_INFORMATION