Interfaccia IResourceList (portcls.h)
L'interfaccia IResourceList
fornisce un'astrazione di un elenco di risorse di configurazione, ovvero un elenco delle risorse hardware di sistema assegnate dal gestore Plug and Play a un dispositivo in fase di avvio. Le risorse nell'elenco possono includere vettori di interrupt, canali DMA, indirizzi di porta I/O e blocchi di indirizzi di memoria relativi al bus. Per altre informazioni, vedere Avvio di un dispositivo in un driver di funzione.
Il driver di sistema PortCls implementa l'interfaccia IResourceList
e la espone ai driver dell'adattatore. Quando PortCls chiama la routine di avvio del dispositivo di un driver di adattatore (vedere Avvio di un dispositivo), passa un oggetto IResourceList
come uno dei parametri di chiamata.
Il file di intestazione portcls.h definisce il set di macro per semplificare la gestione degli oggetti elenco di risorse. Per ogni tipo di risorsa vengono definite le quattro macro seguenti:
ULONG
NumberOfpluralresourcename(
void
);
PCM_PARTIAL_RESOURCE_DESCRIPTOR
FindTranslatedsingularresourcename(
ULONG Index
);
PCM_PARTIAL_RESOURCE_DESCRIPTOR
FindUntranslatedsingularresourcename(
ULONG Index
);
NTSTATUS
AddsingularresourcenameFromParent(
PRESOURCELIST Parent,
ULONG Index
);
Nella tabella seguente vengono illustrati i tipi di risorsa per i quali sono definite queste macro.
Nome tipo di risorsa | Forma singolare | Plurale |
---|---|---|
CmResourceTypePort | Porto | Porte |
CmResourceTypeInterrupt | Interrompere | Interrompe |
CmResourceTypeMemory | Memoria | Ricordi |
CmResourceTypeDma | Dma | Dmas |
CmResourceTypeDeviceSpecific | DeviceSpecific | DeviceSpecifics |
CmResourceTypeBusNumber | BusNumber | BusNumbers |
CmResourceTypePrivate | Privato | Parti intime |
CmResourceTypeAssignedResource | AssignedResource | AssignedResources |
CmResourceTypeSubAllocateFrom | SubAllocateFrom | SubAllocateFroms |
Per i significati dei nomi dei tipi di risorsa nella colonna sinistra precedente, vedere CM_PARTIAL_RESOURCE_DESCRIPTOR.
Nella tabella seguente sono elencate in modo esplicito le quattro macro definite da portcls.h per ognuno dei nove tipi di risorse. A destra di ogni macro è la chiamata equivalente a un metodo IResourceList
.
Macro | Chiamata IResourceList equivalente |
---|---|
NumberOfPorts() | NumberOfEntriesOfType(CmResourceTypePort) |
FindTranslatedPort(n) | FindTranslatedEntry(CmResourceTypePort,(n)) |
FindUntranslatedPort(n) | FindUntranslatedEntry(CmResourceTypePort,(n)) |
AddPortFromParent(p,n) | AddEntryFromParent((p),CmResourceTypePort,(n)) |
NumberOfInterrupts() | NumberOfEntriesOfType(CmResourceTypeInterrupt) |
FindTranslatedInterrupt(n) | FindTranslatedEntry(CmResourceTypeInterrupt,(n)) |
FindUntranslatedInterrupt(n) | FindUntranslatedEntry(CmResourceTypeInterrupt,(n)) |
AddInterruptFromParent(p,n) | AddEntryFromParent((p),CmResourceTypeInterrupt,(n)) |
NumberOfMemories() | NumberOfEntriesOfType(CmResourceTypeMemory) |
FindTranslatedMemory(n) | FindTranslatedEntry(CmResourceTypeMemory,(n)) |
FindUntranslatedMemory(n) | FindUntranslatedEntry(CmResourceTypeMemory,(n)) |
AddMemoryFromParent(p,n) | AddEntryFromParent((p),CmResourceTypeMemory,(n)) |
NumberOfDmas() | NumberOfEntriesOfType(CmResourceTypeDma) |
FindTranslatedDma(n) | FindTranslatedEntry(CmResourceTypeDma,(n)) |
FindUntranslatedDma(n) | FindUntranslatedEntry(CmResourceTypeDma,(n)) |
AddDmaFromParent(p,n) | AddEntryFromParent((p),CmResourceTypeDma,(n)) |
NumberOfDeviceSpecifics() | NumberOfEntriesOfType(CmResourceTypeDeviceSpecific) |
FindTranslatedDeviceSpecific(n) | FindTranslatedEntry(CmResourceTypeDeviceSpecific,(n)) |
FindUntranslatedDeviceSpecific(n) | FindUntranslatedEntry(CmResourceTypeDeviceSpecific,(n)) |
AddDeviceSpecificFromParent(p,n) | AddEntryFromParent((p),CmResourceTypeDeviceSpecific,(n)) |
NumberOfBusNumbers() | NumberOfEntriesOfType(CmResourceTypeBusNumber) |
FindTranslatedBusNumber(n) | FindTranslatedEntry(CmResourceTypeBusNumber,(n)) |
FindUntranslatedBusNumber(n) | FindUntranslatedEntry(CmResourceTypeBusNumber,(n)) |
AddBusNumberFromParent(p,n) | AddEntryFromParent((p),CmResourceTypeBusNumber,(n)) |
NumberOfDevicePrivates() | NumberOfEntriesOfType(CmResourceTypeDevicePrivate) |
FindTranslatedDevicePrivate(n) | FindTranslatedEntry(CmResourceTypeDevicePrivate,(n)) |
FindUntranslatedDevicePrivate(n) | FindUntranslatedEntry(CmResourceTypeDevicePrivate,(n)) |
AddDevicePrivateFromParent(p,n) | AddEntryFromParent((p),CmResourceTypeDevicePrivate,(n)) |
NumberOfAssignedResources() | NumberOfEntriesOfType(CmResourceTypeAssignedResource) |
FindTranslatedAssignedResource(n) | FindTranslatedEntry(CmResourceTypeAssignedResource,(n)) |
FindUntranslatedAssignedResource(n) | FindUntranslatedEntry(CmResourceTypeAssignedResource,(n)) |
AddAssignedResourceFromParent(p,n) | AddEntryFromParent((p),CmResourceTypeAssignedResource,(n)) |
NumberOfSubAllocateFroms() | NumberOfEntriesOfType(CmResourceTypeSubAllocateFrom) |
FindTranslatedSubAllocateFrom(n) | FindTranslatedEntry(CmResourceTypeSubAllocateFrom,(n)) |
FindUntranslatedSubAllocateFrom(n) | FindUntranslatedEntry(CmResourceTypeSubAllocateFrom,(n)) |
AddSubAllocateFromFromParent(p,n) | AddEntryFromParent((p),CmResourceTypeSubAllocateFrom,(n)) |
Eredità
L'interfaccia IResourceList eredita dall'interfaccia IUnknown.
Metodi
L'interfaccia IResourceList dispone di questi metodi.
IResourceList::AddEntry Il metodo AddEntry aggiunge una voce a un elenco di risorse. |
IResourceList::AddEntryFromParent Il metodo AddEntryFromParent aggiunge a un elenco di risorse una voce presente nell'elenco padre dell'elenco di risorse. |
IResourceList::FindTranslatedEntry Il metodo FindTranslatedEntry restituisce un puntatore a una voce tradotta del tipo specificato oppure NULL se non viene trovata alcuna voce di questo tipo. |
IResourceList::FindUntranslatedEntry Il metodo FindUntranslatedEntry restituisce un puntatore a una voce non tradotta del tipo specificato oppure NULL se non viene trovato alcun puntatore di questo tipo. |
IResourceList::NumberOfEntries Il metodo NumberOfEntries restituisce il numero di elementi di risorsa nell'elenco di risorse. |
IResourceList::NumberOfEntriesOfType Il metodo NumberOfEntriesOfType restituisce il numero di elementi di risorsa di un determinato tipo nell'elenco di risorse. Per ogni tipo di risorsa, viene definita una macro per chiamare questo metodo come descritto in precedenza. |
IResourceList::TranslatedList Il metodo TranslatedList restituisce l'elenco delle risorse tradotte. |
IResourceList::UntranslatedList Il metodo UntranslatedList restituisce l'elenco di risorse non tradotte. |
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Finestre |
intestazione | portcls.h |