Função StorPortSynchronizeAccess (storport.h)
A rotina de StorPortSynchronizeAccess fornece acesso sincronizado à extensão de dispositivo de um miniportor.
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 miniporto. Os drivers de miniporto 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 miniporto 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 for chamada.
Valor de retorno
O valor retornado de SynchronizedAccessRoutine .
Observações
Os drivers de miniport que operam no modo full-duplex e que acessam informações compartilhadas entre seus HwStorStartIo rotina e rotina de serviço de interrupção devem usar essa rotina para acessar os dados compartilhados de maneira sincronizada.
O driver de miniporto passa uma rotina de retorno de chamada para StorPortSynchronizeAccesse StorPortSynchronizeAccess o 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 fornecidas pelo chamador 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 |
---|---|
da Plataforma de Destino | Universal |
cabeçalho | storport.h (inclua Storport.h) |
biblioteca | Storport.lib |