Condividi tramite


Funzione StorPortGetPhysicalAddress (storport.h)

La routine StorPortGetPhysicalAddress converte un determinato intervallo di indirizzi virtuali in un intervallo di indirizzi fisici per un'operazione DMA.

Sintassi

STORPORT_API STOR_PHYSICAL_ADDRESS StorPortGetPhysicalAddress(
  [in]           PVOID               HwDeviceExtension,
  [in, optional] PSCSI_REQUEST_BLOCK Srb,
  [in]           PVOID               VirtualAddress,
  [out]          ULONG               *Length
);

Parametri

[in] HwDeviceExtension

Puntatore all'estensione del dispositivo hardware. Si tratta di un'area di archiviazione hbA che il driver di porta alloca e inizializza per conto del driver miniport. I driver miniport in genere archiviano informazioni specifiche di HBA in questa estensione, ad esempio lo stato dell'HBA e gli intervalli di accesso mappati per l'HBA. Questa area è disponibile per il driver miniport nel membro DeviceExtension-HwDeviceExtension> dell'oggetto dispositivo per l'HBA immediatamente dopo che il driver miniport chiama StorPortInitialize. Il driver di porta libera questa memoria quando rimuove il dispositivo.

[in, optional] Srb

Puntatore al blocco della richiesta SCSI se l'indirizzo virtuale da convertire proviene dal membro DataBuffer di SRB o dal membro SenseInfoBuffer . In caso contrario, questo parametro deve essere NULL.

[in] VirtualAddress

Puntatore all'indirizzo virtuale di base da convertire. Se questo indirizzo virtuale rientra nell'intervallo per un dataBuffer fornito da SRB, il chiamante deve anche fornire il puntatore Srb .

[out] Length

Puntatore a un valore che indica il numero di byte mappati, a partire dall'indirizzo fisico restituito.

Valore restituito

StorPortGetPhysicalAddress restituisce l'indirizzo fisico corrispondente per un determinato indirizzo virtuale. Se l'indirizzo specificato non può essere convertito, la funzione restituisce NULL.

Commenti

Se l'indirizzo virtuale passato a StorPortGetPhysicalAddress viene ottenuto da StorPortAllocateContiguousMemorySpecifyCacheNode, il valore restituito per Length deve essere ignorato.

A partire da Windows 8, il parametro Srb può puntare a SCSI_REQUEST_BLOCK o STORAGE_REQUEST_BLOCK. Se l'identificatore di funzione nel campo Funzione di Srb è SRB_FUNCTION_STORAGE_REQUEST_BLOCK, SRB è una struttura di richiesta STORAGE_REQUEST_BLOCK .

StorPortGetPhysicalAddress usa STOR_PHYSICAL_ADDRESS per rappresentare gli indirizzi fisici.

typedef PHYSICAL_ADDRESS STOR_PHYSICAL_ADDRESS, *PSTOR_PHYSICAL_ADDRESS;

Il tipo STOR_PHYSICAL_ADDRESS è un tipo di dati indipendente dal sistema operativo che i driver miniport Storport usano per rappresentare indirizzi fisici o un indirizzo relativo al bus.

Requisiti

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

Vedi anche

SCSI_REQUEST_BLOCK

STORAGE_REQUEST_BLOCK

SCSIPortGetPhysicalAddress