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 di Plug and Play a un dispositivo in fase di avvio. Le risorse nell'elenco possono includere vettori di interruzione, 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 e la espone ai driver dell'adattatore IResourceList
. Quando PortCls chiama la routine di avvio del dispositivo del driver dell'adattatore (vedere Avvio di un dispositivo), passa un IResourceList
oggetto 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 vengono definite queste macro.
Nome tipo di risorsa | Forma singolare | Plurale |
---|---|---|
CmResourceTypePort | Porta | Porte |
CmResourceTypeInterrupt | Interrompere | Interrompe |
CmResourceTypeMemory | Memoria | Ricordi |
CmResourceTypeDma | Dma | Dmas |
CmResourceTypeDeviceSpecific | Devicespecific | DeviceSpecifics |
CmResourceTypeBusNumber | BusNumber | BusNumbers |
CmResourceTypePrivate | Privato | Privati |
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 IResourceList
metodo.
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)) |
Ereditarietà
L'interfaccia IResourceList eredita dall'interfaccia IUnknown.
Metodi
L'interfaccia IResourceList include 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 trovata nell'elenco padre dell'elenco risorse. |
IResourceList::FindTranslatedEntry Il metodo FindTranslatedEntry restituisce un puntatore a una voce tradotta del tipo specificato o 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 o 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. |
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | portcls.h |