Metodo IWDFFileHandleTargetFactory::CreateFileHandleTarget (wudfddi.h)
[Avviso: UMDF 2 è la versione più recente di UMDF e sostituisce UMDF 1. Tutti i nuovi driver UMDF devono essere scritti usando UMDF 2. Non vengono aggiunte nuove funzionalità a UMDF 1 ed è disponibile un supporto limitato per UMDF 1 nelle versioni più recenti di Windows 10. I driver di Windows universali devono usare UMDF 2. Per altre informazioni, vedi Introduzione a UMDF.]
Il metodo CreateFileHandleTarget crea un oggetto di destinazione di I/O basato su handle di file.
Sintassi
HRESULT CreateFileHandleTarget(
[in] HANDLE hTarget,
[out] IWDFIoTarget **ppTarget
);
Parametri
[in] hTarget
Handle per il dispositivo di destinazione. L'handle deve essere stato aperto in precedenza con il flag FILE_FLAG_OVERLAPPED. Ad esempio, FILE_FLAG_OVERLAPPED deve essere stato specificato nel parametro
[out] ppTarget
Puntatore a una posizione che riceve un puntatore al IWDFIoTarget interfaccia dell'oggetto di destinazione I/O.
Valore restituito
CreateFileHandleTarget restituisce uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
|
CreateFileHandleTarget creato correttamente un oggetto di destinazione di I/O basato su handle di file. |
|
CreateFileHandleTarget rilevato un errore di allocazione. |
CreateFileHandleTarget potrebbe restituire anche altri valori HRESULT definiti in Winerror.h.
Osservazioni
Se il driver usa una destinazione di I/O basata su handle di file, la sezione
Dopo che il driver crea un oggetto di destinazione di I/O basato su handle di file, può formattare le richieste di I/O e inviarle alla destinazione di I/O. In genere, se il driver chiama IWDFIoTarget::FormatRequestForRead, IWDFIoTarget::FormatRequestForWriteo IWDFIoTarget::FormatRequestForIoctl, il driver imposta il parametro pFile su NULL. Il NULL fa in modo che il framework usi il nome file specificato dal driver per CreateFileHandleTarget. Se il driver fornisce un parametroNULLpFile, il file specificato sostituisce il file specificato per CreateFileHandleTarget. I driver possono anche chiamare IWDFIoRequest::FormatUsingCurrentType per formattare una richiesta di I/O.
Quando il driver chiama
L'handle Win32 passato al driver CreateFileHandleTarget deve rimanere valido per la durata dell'oggetto di destinazione di I/O basato su handle di file. Il framework non accetta un riferimento su questo handle di destinazione, quindi il driver deve assicurarsi che l'handle Win32 rimanga valido.
Al termine dell'uso dell'interfaccia di IWDFIoTarget
Per altre informazioni su destinazioni createFileHandleTarget e I/O, vedere Inizializzazione di una destinazione di I/O generale in UMDF.
Esempi
Nell'esempio di codice seguente viene illustrato come creare una destinazione di I/O basata su handle di file per una named pipe. In questo esempio, m_FxDevice è il puntatore a interfaccia fornito IWDFDriver::CreateDevice.
HRESULT hr = S_OK;
CComPtr<IWDFFileHandleTargetFactory> pFileHandleTargetFactory;
//
// Create a pipe and get the handle.
//
m_WriteHandle = CreateNamedPipe(NP_NAME,
PIPE_ACCESS_DUPLEX|FILE_FLAG_OVERLAPPED,
PIPE_TYPE_MESSAGE|PIPE_READMODE_MESSAGE|PIPE_WAIT,
2,
MAX_TRANSFER_SIZE,
MAX_TRANSFER_SIZE,
1000,
NULL);
if (m_WriteHandle == INVALID_HANDLE_VALUE) {
DWORD err = GetLastError();
hr = HRESULT_FROM_WIN32(err);
}
//
// Obtain the IWDFFileHandleTargetFactory interface
// by calling IWDFDevice::QueryInterface.
//
if (SUCCEEDED(hr)) {
hr = m_FxDevice->QueryInterface(IID_PPV_ARGS(&pFileHandleTargetFactory));
}
//
// Create a file handle target.
//
if (SUCCEEDED(hr)) {
hr = pFileHandleTargetFactory->CreateFileHandleTarget(m_WriteHandle,
&m_WriteTarget);
}
Fabbisogno
Requisito | Valore |
---|---|
Fine del supporto | Non disponibile in UMDF 2.0 e versioni successive. |
piattaforma di destinazione | Desktop |
versione minima di UMDF | 1.5 |
intestazione |
wudfddi.h (include Wudfusb.h) |
dll | WUDFx.dll |