Função StorPortSynchronizeAccess (storport.h)

A rotina StorPortSynchronizeAccess fornece acesso sincronizado à extensão de dispositivo de um driver de miniport.

Sintaxe

STORPORT_API BOOLEAN StorPortSynchronizeAccess(
  [in]           PVOID                     HwDeviceExtension,
  [in]           PSTOR_SYNCHRONIZED_ACCESS SynchronizedAccessRoutine,
  [in, optional] PVOID                     Context
);

Parâmetros

[in] HwDeviceExtension

Um ponteiro para a extensão do dispositivo de hardware. Essa é uma área de armazenamento por HBA que o driver de porta aloca e inicializa em nome do driver de miniporta. Os drivers de miniporta geralmente armazenam informações específicas do HBA nessa extensão, como o estado do HBA e os intervalos de acesso mapeados para o HBA. Essa área está disponível para o driver de miniporta imediatamente após o driver de miniporto chamar StorPortInitialize. O driver de porta libera essa memória quando remove o dispositivo.

[in] SynchronizedAccessRoutine

Ponteiro para uma rotina fornecida pelo chamador cuja execução deve ser sincronizada com a execução do ISR associado aos objetos de interrupção. Para obter um protótipo dessa rotina, consulte a seção Comentários mais adiante neste tópico.

[in, optional] Context

Ponteiro para uma área de contexto a ser passada para a rotina de retorno de chamada fornecida pelo chamador quando ela é chamada.

Retornar valor

O valor retornado de SynchronizedAccessRoutine.

Comentários

Os drivers de miniport que operam no modo full-duplex e que acessam informações compartilhadas entre a rotina HwStorStartIo e a rotina de serviço de interrupção devem usar essa rotina para acessar os dados compartilhados de maneira sincronizada.

O driver de miniporta passa uma rotina de retorno de chamada para StorPortSynchronizeAccess e StorPortSynchronizeAccess a chama depois de garantir acesso exclusivo a estruturas de dados confidenciais. A rotina de retorno de chamada do driver de miniporto deve estar em conformidade com o seguinte protótipo:

typedef
BOOLEAN
(* PSTOR_SYNCHRONIZED_ACCESS) (
  IN PVOID HwDeviceExtension,
 IN PVOID Context
  );

em que HwDeviceExtension é um ponteiro para a extensão do dispositivo de hardware e Context é apenas um ponteiro para as mesmas informações de contexto que o chamador forneceu ao chamar StorPortSynchronizeAccess.

Para obter mais informações, consulte Acesso sincronizado em rotinas de driver de miniporto não sincronizadas.

Para obter mais informações sobre rotinas de sincronização, consulte KeSynchronizeExecution.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho storport.h (inclua Storport.h)
Biblioteca Storport.lib

Confira também

KeSynchronizeExecution