pressed. As the operating system and drivers are already loaded into memory, it takes less time to start up the system. Devices simply need to be powered up for the user to get started. A remote control handset or incoming modem call may similarly be used to wake the system up.

Both Windows 98 and Windows 2000 can now take full use of the Plug and Play hardware facilities to allow easy device insertion and removal. Again, drivers need to help in this process, allocating and releasing resources only as instructed by the Plug and Play Manager.

PC 99 specifies that ACPI, OnNow, and Plug and Play must be supported.:

PC 99 Conformance

Microsoft can certify your hardware and software as PC 99 compatible. To do this, contact their Windows Hardware Quality Labs at http://www.microsoft.com/hwtest/ or e-mail to [email protected]. When your driver passes these tests, Microsoft gives you a digital signature catalog file that you should include in your driver's INF file.

The Windows DDK includes a simplified version of Microsoft's own tests on their Hardware Compatibility Tests (HCT) CDs. Check out your driver with these tests before submitting your driver for full testing.

Appendix C

Direct Memory Access

This book does not cover Direct Memory Access (DMA) in detail. However, NT 3.51 and NT 4 driver writers will find that they must access the DMA system routines in a new way. All the same routines are there, you just have to call IoGetDmaAdapter first. This returns a pointer to a DMA_ADAPTER object. The DmaOperations field in there contains pointers to all the familiar routines. Call the DmaOperations PutDmaAdapter callback when you have finished with the DMA_ADAPTER object.

Table C.1 shows the corresponding old and new routines. Just to reiterate, there is no kernel routine directly called PutDmaAdapter. This routine is only available through the DMA_ADAPTER structure, e.g.,

(*DmaAdapter->DmaOperations->PutDmaAdapter)(DmaAdapter);

Table C.1 Old and new DMA routines

Old New New DmaOperations routine Description
HalGetAdapter IoGetDmaAdapter
PutDmaAdapter Release DmaAdapter
HalAllocateCommonBuffer AllocateCommonBuffer
HalFreeCommonBuffer FreeCommonBuffer
IoAllocateAdapterChannel AllocateAdapterChannel
IoFlushAdapterBuffers FlushAdapterBuffers
IoFreeAdapterChannel FreeAdapterChannel
IoFreeMapRegisters FreeMapRegisters
IoMapTransfer MapTransfer
HalGetDmaAlignmentRequirement GetDmaAlignment Get alignment requirements for DMA buffers
HalReadDmaCounter
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату