VC_GetResources

BOOLEAN
VC_GetResources(
   PDEVICE_INFO
pDevInfo,
   PDRIVER_OBJECT
pDriverObject,
   PUCHAR
pPortBase,
   ULONG
NrOfPorts,
   ULONG
Interrupt,
   BOOLEAN
bLatched,
   PUCHAR
pFrameBuffer,
   ULONG
FrameLength,
   );

The VC_GetResources function reserves system resources for a device, and maps the device’s I/O address space and frame buffer into system address space.

Parameters

pDevInfo

Pointer to the DEVICE_INFO structure returned by VC_Init.

pDriverObject

The driver object pointer received as input to the driver’s DriverEntry function.

pPortBase

Bus-relative physical base address of the device’s I/O port address space.

NrOfPorts

Number of port addresses.

Interrupt

Interrupt number.

bLatched

Set to TRUE if the interrupt is latched or FALSE if the interrupt is level-sensitive.

pFrameBuffer

Bus-relative physical base address of the device’s frame buffer.

FrameLength

Length of the frame buffer.

Return Value

Returns TRUE if the operation succeeds. Otherwise returns FALSE.

Comments

A kernel-mode video capture driver using VCKernel.lib must call VC_GetResources from within its DriverEntry function. The VC_GetResources function performs the following operations, in the order listed:

1.Determines the bus type.

2.Maps the device’s I/O port space to system space.

3.Maps the device’s frame buffer to system space.

4.Reserves the interrupt number, mapped I/O port space, and mapped frame buffer space for use by the device.

The VC_GetResources function calls HalTranslateBusAddress, MmMapIoSpace, and IoReportResourceUsage.