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) |