Método IWDFDevice::CreateRequest (wudfddi.h)
[Aviso: UMDF 2 é a versão mais recente do UMDF e substitui UMDF 1. Todos os novos drivers UMDF devem ser gravados usando UMDF 2. Nenhum novo recurso está sendo adicionado ao UMDF 1 e há suporte limitado para UMDF 1 em versões mais recentes do Windows 10. Drivers universais do Windows devem usar UMDF 2. Para obter mais informações, consulte Introdução com UMDF.]
O método CreateRequest cria um objeto de solicitação não formatado.
Sintaxe
HRESULT CreateRequest(
[in, optional] IUnknown *pCallbackInterface,
[in, optional] IWDFObject *pParentObject,
[out] IWDFIoRequest **ppRequest
);
Parâmetros
[in, optional] pCallbackInterface
Um ponteiro para a interface IUnknown que a estrutura usa para determinar as funções de retorno de chamada de evento relacionadas ao objeto que o driver assina no objeto de solicitação recém-criado. Esse parâmetro é opcional. O driver poderá passar NULL se o driver não exigir notificação. Se o driver passar um ponteiro válido, a estrutura chamará QueryInterface na interface IUnknown para a interface IObjectCleanup . Se a estrutura obtiver a interface IObjectCleanup do driver, a estrutura poderá chamar posteriormente o método IObjectCleanup::OnCleanup do driver para notificar o driver de que o objeto de solicitação foi limpo.
[in, optional] pParentObject
Um ponteiro para a interface IWDFObject para o objeto pai do objeto de solicitação de E/S criado. Se FOR NULL, o objeto do dispositivo se tornará o pai padrão.
[out] ppRequest
Um ponteiro para uma variável que recebe um ponteiro para a interface IWDFIoRequest para o novo objeto de solicitação.
Retornar valor
CreateRequest retornará S_OK se a operação for bem-sucedida. Caso contrário, esse método retornará um dos códigos de erro definidos em Winerror.h.
Comentários
Antes que um driver UMDF use o objeto de solicitação que CreateRequest cria, o driver deve formatar o objeto de solicitação. Para formatar um objeto de solicitação de E/S, o driver chama um dos seguintes métodos:
Se NULL for especificado no parâmetro pParentObject , o objeto do dispositivo se tornará o objeto pai padrão para o objeto de solicitação de E/S recém-criado. Se um driver UMDF criar um objeto de solicitação de E/S que o driver usa com um objeto de fila de E/S específico ou outro objeto de solicitação de E/S, o driver deverá definir esse objeto de fila ou solicitação como o objeto pai do objeto de solicitação criado. Quando o objeto pai é excluído, o objeto de solicitação criado é excluído.
Exemplos
O exemplo de código a seguir mostra como criar uma solicitação, formatar a solicitação de leitura e enviar a solicitação.
HRESULT
CUmdfHidDevice::SendInterruptPipeRead(
VOID
)
{
CComPtr<IWDFDevice> wdfDevice;
HRESULT hr;
IWDFFile *pTargetFile = NULL;
// Allocate a new WDF request to send on the interrupt pipe.
GetWdfDevice(&wdfDevice);
hr = wdfDevice->CreateRequest(
static_cast<IObjectCleanup*>(this),
wdfDevice,
&m_InterruptReadRequest
);
if (SUCCEEDED(hr))
{
m_InterruptPipe->GetTargetFile(&pTargetFile);
hr = m_InterruptPipe->FormatRequestForRead(
m_InterruptReadRequest,
pTargetFile,
m_ReadMemory,
NULL,
NULL
);
}
// Issue the read to the pipe.
if (SUCCEEDED(hr))
{
hr = m_InterruptReadRequest->Send(m_InterruptPipe, 0, 0);
}
return hr;
}
Requisitos
Requisito | Valor |
---|---|
Fim do suporte | Indisponível no UMDF 2.0 e posterior. |
Plataforma de Destino | Área de Trabalho |
Versão mínima do UMDF | 1.5 |
Cabeçalho | wudfddi.h (include Wudfddi.h) |
DLL | WUDFx.dll |
Confira também
IWDFIoTarget::FormatRequestForIoctl
IWDFIoTarget::FormatRequestForRead