Função IoCsqInitializeEx (wdm.h)
A rotina IoCsqInitializeEx inicializa a tabela de expedição para uma fila IRP segura para cancelamento.
Sintaxe
NTSTATUS IoCsqInitializeEx(
[out] PIO_CSQ Csq,
[in] PIO_CSQ_INSERT_IRP_EX CsqInsertIrp,
[in] PIO_CSQ_REMOVE_IRP CsqRemoveIrp,
[in] PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp,
[in] PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock,
[in] PIO_CSQ_RELEASE_LOCK CsqReleaseLock,
[in] PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp
);
Parâmetros
[out] Csq
Ponteiro para a estrutura IO_CSQ a ser inicializada por IoCsqInitializeEx.
[in] CsqInsertIrp
Ponteiro para a função CsqInsertIrpEx definida pelo driver para a fila IRP cancel-safe do driver.
[in] CsqRemoveIrp
Ponteiro para a função CsqRemoveIrp definida pelo driver para a fila IRP cancel-safe do driver.
[in] CsqPeekNextIrp
Ponteiro para a função CsqPeekNextIrp definida pelo driver para a fila IRP cancel-safe do driver.
[in] CsqAcquireLock
Ponteiro para a função CsqAcquireLock definida pelo driver para a fila IRP cancel-safe do driver.
[in] CsqReleaseLock
Ponteiro para a função CsqReleaseLock definida pelo driver para a fila IRP cancel-safe do driver.
[in] CsqCompleteCanceledIrp
Ponteiro para a função CsqCompleteCanceledIrp definida pelo driver para a fila IRP cancel-safe do driver.
Retornar valor
IoCsqInitializeEx retorna STATUS_SUCCESS com êxito ou o código de erro apropriado em caso de falha.
Comentários
As rotinas IoCsqInitialize e IoCsqInitializeEx inicializam uma estrutura de IO_CSQ que descreve a fila de IRP cancel-safe de um driver. Você pode usar IoCsqInitializeEx para especificar uma fila IRP com recursos estendidos em vez de uma especificada por IoCsqInitialize:
- O driver implementa uma rotina CsqInsertIrpEx em vez de uma rotina CsqInsertIrp . CsqInsertIrpEx usa um parâmetro adicional, InsertContext. Quando o driver chama IoCsqInsertIrpEx para inserir o IRP, ele especifica o valor que é passado como InsertContext.
- IoCsqInsertIrpEx retorna o valor retornado de CsqInsertIrpEx. Os drivers podem usar o valor retornado para indicar se uma operação de inserção foi bem-sucedida ou falhou.
Observe que as rotinas do IoCsqXxx usam o membro DriverContext[3] do IRP para armazenar informações de contexto IRP. Os drivers que usam essas rotinas para enfileirar IRPs devem deixar esse membro não utilizado.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível no Windows Server 2003 e versões posteriores do sistema operacional Windows. A rotina também está disponível na biblioteca Csq.lib que é fornecida com o WDK (Kit de Driver do Windows) e o DDK (Driver Development Kit) para Windows Server 2003. Drivers que também devem funcionar no Windows XP, Windows 2000 e Windows 98/Me podem, em vez disso, vincular ao Csq.lib para usar a rotina. |
Plataforma de Destino | Universal |
Cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Qualquer nível |