Método IWDFDevice::RetrieveDeviceName (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. Os drivers universais do Windows devem usar o UMDF 2. Para obter mais informações, consulte Introdução com UMDF.]
O método RetrieveDeviceName recupera o nome de um dispositivo no modo kernel subjacente.
Sintaxe
HRESULT RetrieveDeviceName(
[out] PWSTR pDeviceName,
[in, out] DWORD *pdwDeviceNameLength
);
Parâmetros
[out] pDeviceName
Um ponteiro para um buffer que recebe uma cadeia de caracteres terminada em NULL que representa o nome do dispositivo de modo kernel subjacente, se o buffer não for NULL e RetrieveDeviceName for bem-sucedido.
[in, out] pdwDeviceNameLength
Um ponteiro para uma variável que recebe o número de caracteres, incluindo o caractere NULL , no nome do dispositivo.
Se o buffer em pDeviceName for NULL, o valor fornecido pelo driver será zero. Em seguida, a estrutura retorna o tamanho, em caracteres, que é necessário para a cadeia de caracteres de nome do dispositivo.
Se o buffer em pDeviceName não for NULL, a estrutura retornará o tamanho, em caracteres, da cadeia de caracteres de nome do dispositivo.
Retornar valor
RetrieveDeviceName retorna S_OK para os seguintes cenários:
- O buffer que o parâmetro pDeviceName apontou era não NULL e grande o suficiente para manter a cadeia de caracteres de nome, incluindo o caractere NULL , e a estrutura copiou com êxito a cadeia de caracteres no buffer fornecido e definiu a variável apontada por pdwDeviceNameLength para o número de caracteres na cadeia de caracteres.
- O buffer em pDeviceName era NULL, o driver predefiniva a variável em pdwDeviceNameLength como 0 e a estrutura definia a variável em pdwDeviceNameLength como o número de caracteres necessários para a cadeia de caracteres.
RetrieveDeviceName retorna HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) para indicar que o buffer fornecido não era NULL e não continha espaço suficiente para manter o nome do dispositivo. A estrutura define a variável em pdwDeviceNameLength como o número de caracteres necessários para a cadeia de caracteres.
RetrieveDeviceName também pode retornar outros valores HRESULT.
Comentários
O nome do dispositivo não é o nome do objeto de dispositivo físico (PDO). Em vez disso, o nome do dispositivo é o nome do refletor. O driver deve direcionar toda a E/S para esse objeto de dispositivo.
Exemplos
O exemplo de código a seguir mostra como recuperar o nome de um dispositivo de modo kernel subjacente.
PWSTR deviceName = NULL;
DWORD deviceNameCch = 0;
HRESULT hr;
//
// Get the length of the device name to allocate a buffer
//
hr = m_FxDevice->RetrieveDeviceName(NULL, &deviceNameCch);
//
// Allocate the buffer
//
deviceName = new WCHAR[deviceNameCch];
if (deviceName == NULL) {
hr = E_OUTOFMEMORY;
goto Exit1;
}
//
// Get the device name
//
hr = m_FxDevice->RetrieveDeviceName(deviceName,
&deviceNameCch);
// Open the device and get the handle
m_Handle = CreateFile(deviceName,
(GENERIC_READ | GENERIC_WRITE),
0,
NULL,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
NULL);
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 (inclua Wudfddi.h) |
DLL | WUDFx.dll |