AtaPortRegistryAllocateBuffer function (irb.h)
The AtaPortRegistryAllocateBuffer routine allocates a buffer for registry operations.
Syntax
PVOID AtaPortRegistryAllocateBuffer(
[in] PVOID ChannelExtension,
ULONG BufferSize
);
Parameters
[in] ChannelExtension
A pointer to the channel extension.
BufferSize
Specifies the length of the buffer, in bytes.
Return value
AtaPortRegistryAllocateBuffer returns a pointer to the allocated buffer on success. Otherwise, it returns NULL.
Remarks
The port driver enables the miniport driver to allocate one buffer for all its registry operations. After the miniport driver has allocated a buffer with AtaPortRegistryAllocateBuffer, later calls to AtaPortRegistryAllocateBuffer will fail and return NULL. After the miniport driver frees the allocated buffer with a call to the AtaPortRegistryFreeBuffer routine, it can again allocate buffers by calling AtaPortRegistryAllocateBuffer.
The miniport driver must call AtaPortRegistryAllocateBuffer either in its AtaChannelInitRoutine routine or in its IdeHwControl routine. It cannot call AtaPortRegistryAllocateBuffer from any other routine. Additionally, the miniport driver can only call AtaPortRegistryAllocateBuffer from its IdeHwControl routine if its IdeHwControl routine was called and had a value of either StartChannel or StopChannel in its ControlAction parameter.
Requirements
Requirement | Value |
---|---|
Target Platform | Desktop |
Header | irb.h (include Ata.h, Irb.h) |
Library | Ataport.lib; Pciidex.lib |