Condividi tramite


HW_PROCESS_SERVICE_REQUEST funzione di callback (storport.h)

La routine di callback HwStorProcessServiceRequest riceve l'IRP del controllo del dispositivo che contiene la richiesta di IOCTL_MINIPORT_PROCESS_SERVICE_IRP quando un chiamante, ad esempio un'applicazione in modalità utente o un driver in modalità kernel, richiede un'operazione di "callback inversa". L'I/O viene completato dal driver miniport quando deve indicare al chiamante di qualcosa o ha bisogno del chiamante di eseguire qualcosa.

Sintassi

HW_PROCESS_SERVICE_REQUEST HwProcessServiceRequest;

void HwProcessServiceRequest(
  PVOID DeviceExtension,
  PVOID Irp
)
{...}

Parametri

DeviceExtension

Puntatore all'area di archiviazione per adattatore del driver miniport virtuale.

Irp

Puntatore alla richiesta di I/O.

Valore restituito

nessuno

Osservazioni

Il nome HwStorProcessServiceRequest è il testo segnaposto per il nome di routine effettivo. Il prototipo effettivo di questa routine è definito in Storport.h come segue:

typedef
VOID
HW_PROCESS_SERVICE_REQUEST (
  _In_ PVOID  DeviceExtension,
  _In_ PVOID  Irp
  );

Il driver della porta chiama la routine HwStorProcessServiceRequest del driver virtuale Storport in PASSIVE_LEVEL. Il driver miniport virtuale completa l'IRP chiamando la routine StorPortCompleteServiceIrp .

Esempio

Per definire una funzione di callback HwStorProcessServiceRequest , è prima necessario fornire una dichiarazione di funzione che identifica il tipo di funzione di callback che si sta definendo. Windows fornisce un set di tipi di funzione di callback per i driver. La dichiarazione di una funzione usando i tipi di funzione callback consente l'analisi del codice per i driver, il verifica driver statico (SDV) e altri strumenti di verifica trovano errori ed è un requisito per la scrittura di driver per il sistema operativo Windows.

Ad esempio, per definire una routine di callback HwStorProcessServiceRequest denominata MyHwProcessServiceRequest, usare il tipo di HW_PROCESS_SERVICE_REQUEST come illustrato in questo esempio di codice:

HW_PROCESS_SERVICE_REQUEST MyHwProcessServiceRequest;

Implementare quindi la routine di callback come indicato di seguito:

_Use_decl_annotations_
VOID
MyHwProcessServiceRequest (
  _In_ PVOID  DeviceExtension,
  _In_ PVOID  Irp
  );
  {
      ...
  }

Il tipo di funzione HW_PROCESS_SERVICE_REQUEST è definito nel file di intestazione Storport.h. Per identificare in modo più accurato gli errori durante l'esecuzione degli strumenti di analisi del codice, assicurarsi di aggiungere l'annotazione Use_decl_annotations alla definizione della funzione. L'annotazione Use_decl_annotations garantisce che vengano usate le annotazioni applicate al tipo di funzione HW_PROCESS_SERVICE_REQUEST nel file di intestazione. Per altre informazioni sui requisiti per le dichiarazioni di funzione, vedere Dichiarazione di funzioni tramite tipi di ruolo per i driver Storport. Per informazioni su Use_decl_annotations, vedere Annotazione del comportamento della funzione.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione Storport.h (include Storport.h)

Vedi anche

IOCTL_MINIPORT_PROCESS_SERVICE_IRP

StorPortCompleteServiceIrp