struktur HW_INITIALIZATION_DATA (strmini.h)

Struktur HW_INITIALIZATION_DATA menentukan informasi dasar yang dibutuhkan driver kelas untuk mulai menginisialisasi minidriver. Minidriver meneruskan struktur HW_INITIALIZATION_DATA ke driver kelas ketika mendaftarkan dirinya dengan memanggil StreamClassRegisterMinidriver.

Sintaks

typedef struct _HW_INITIALIZATION_DATA {
  union {
    ULONG HwInitializationDataSize;
    struct {
      USHORT SizeOfThisPacket;
      USHORT StreamClassVersion;
    };
  };
  ULONG                       HwInitializationDataSize;
  PHW_INTERRUPT               HwInterrupt;
  PHW_RECEIVE_DEVICE_SRB      HwReceivePacket;
  PHW_CANCEL_SRB              HwCancelPacket;
  PHW_REQUEST_TIMEOUT_HANDLER HwRequestTimeoutHandler;
  ULONG                       DeviceExtensionSize;
  ULONG                       PerRequestExtensionSize;
  ULONG                       PerStreamExtensionSize;
  ULONG                       FilterInstanceExtensionSize;
  BOOLEAN                     BusMasterDMA;
  BOOLEAN                     Dma24BitAddresses;
  ULONG                       BufferAlignment;
  BOOLEAN                     TurnOffSynchronization;
  ULONG                       DmaBufferSize;
  ULONG                       NumNameExtensions;
  PWCHAR                      *NameExtensionArray;
  ULONG                       Reserved[2];
} HW_INITIALIZATION_DATA, *PHW_INITIALIZATION_DATA;

Anggota

HwInitializationDataSize

Menentukan ukuran struktur data ini, dalam byte.

SizeOfThisPacket

StreamClassVersion

HwInterrupt

Menunjuk ke rutinitas StrMiniInteruppt minidriver.

HwReceivePacket

Menunjuk ke rutinitas StrMiniReceiveDevicePacket minidriver.

HwCancelPacket

Menunjuk ke rutinitas StrMiniCancelPacket minidriver.

HwRequestTimeoutHandler

Menunjuk ke rutinitas StrMiniRequestTimeout minidriver.

DeviceExtensionSize

Menentukan ukuran dalam byte buffer yang harus dialokasikan driver kelas untuk ekstensi perangkat minidriver. Minidriver dapat menggunakan buffer ini untuk merekam informasi privat. Driver kelas meneruskan pointer ke buffer ini di anggota HwDeviceExtension dari HW_STREAM_OBJECT, HW_STREAM_REQUEST_BLOCK, HW_TIME_CONTEXT, dan struktur PORT_CONFIGURATION_INFORMATION yang diteruskannya ke minidriver.

PerRequestExtensionSize

Menentukan ukuran dalam byte buffer yang harus dialokasikan driver kelas untuk buffer yang diarahkan oleh anggota SRBExtension dari struktur HW_STREAM_REQUEST_BLOCK yang diteruskannya ke minidriver. Driver kelas akan mengalokasikan satu buffer untuk setiap HW_STREAM_REQUEST_BLOCK.

PerStreamExtensionSize

Menentukan ukuran dalam byte buffer yang harus dialokasikan driver kelas untuk buffer yang diarahkan oleh anggota HwStreamExtension dari HW_STREAM_OBJECT aliran. Driver kelas akan mengalokasikan satu buffer untuk setiap aliran.

FilterInstanceExtensionSize

Menentukan ukuran dalam byte buffer yang harus dialokasikan ekstensi kelas untuk buffer yang ditunjukkan oleh anggota HwInstanceExtension dari struktur HW_STREAM_REQUEST_BLOCK yang diteruskannya ke minidriver. Driver kelas mengalokasikan satu buffer untuk setiap instans minidriver.

BusMasterDMA

Jika TRUE, perangkat dapat melakukan DMA master bus langsung ke buffer DMA minidriver.

Dma24BitAddresses

Minidriver harus mengatur ini ke TRUE jika perangkat keras DMA yang digunakan perangkat hanya dapat mengakses 24 bit ruang alamat yang lebih rendah.

BufferAlignment

Menentukan persyaratan perataan, dalam byte, untuk buffer DMA. Misalnya, nilai 4 menunjukkan buffer DMA harus diselaraskan pada batas 4-byte.

TurnOffSynchronization

Jika TRUE, minidriver akan menangani sinkronisasinya sendiri; jika tidak, driver kelas menangani sinkronisasi. Sebagian besar minidriver harus mengatur nilai ini ke FALSE. Lihat Sinkronisasi Minidriver di Panduan Desain Minidriver Streaming untuk informasi selengkapnya.

DmaBufferSize

Menentukan ukuran dalam byte buffer DMA yang harus dialokasikan driver kelas untuk minidriver. Minidriver mendapatkan penunjuk ke buffer ini dengan memanggil StreamClassGetDmaBuffer. Driver kelas mengalokasikan memori non-halaman yang berdekatan yang tidak akan tersedia untuk sistem operasi, atau ke driver lain, sehingga nilai ini harus sesingkat mungkin.

NumNameExtensions

NameExtensionArray

Reserved[2]

Dicadangkan untuk penggunaan sistem. Minidriver harus mengabaikan anggota ini.

Persyaratan

Persyaratan Nilai
Header strmini.h (termasuk Strmini.h)